pulsar-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mme...@apache.org
Subject [incubator-pulsar] branch asf-site updated: Updated site at revision b0b3cee
Date Wed, 01 Aug 2018 08:33:12 GMT
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/incubator-pulsar.git


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

commit 24f3ba34b37ef7bcde947f4bbd68f226ea1f3c2d
Author: jenkins <builds@apache.org>
AuthorDate: Wed Aug 1 08:33:03 2018 +0000

    Updated site at revision b0b3cee
---
 .../docs/latest/adaptors/PulsarSpark/index.html    |    8 +-
 .../docs/latest/adaptors/PulsarStorm/index.html    |    6 +-
 content/docs/latest/admin-api/overview/index.html  |   10 +-
 content/docs/latest/clients/Cpp/index.html         |    8 +-
 content/docs/latest/clients/Java/index.html        |   14 +-
 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  |   14 +-
 .../latest/cookbooks/RetentionExpiry/index.html    |   14 +-
 .../docs/latest/cookbooks/compaction/index.html    |    6 +-
 .../cookbooks/message-deduplication/index.html     |   10 +-
 .../docs/latest/cookbooks/message-queue/index.html |   14 +-
 .../latest/cookbooks/tiered-storage/index.html     |    4 +-
 .../docs/latest/deployment/Kubernetes/index.html   |    4 +-
 .../docs/latest/deployment/aws-cluster/index.html  |    4 +-
 content/docs/latest/deployment/cluster/index.html  |    4 +-
 content/docs/latest/deployment/instance/index.html |    4 +-
 .../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  |   18 +-
 .../docs/latest/security/authorization/index.html  |   10 +-
 content/docs/latest/security/encryption/index.html |    6 +-
 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/staging/admin-rest-api.html                |   27 +-
 content/staging/admin-rest-api/index.html          |   27 +-
 content/staging/contact.html                       |   29 +-
 content/staging/contact/index.html                 |   29 +-
 content/staging/docs/adaptors-kafka.html           |  320 +---
 content/staging/docs/adaptors-kafka/index.html     |  320 +---
 content/staging/docs/adaptors-spark.html           |  120 +-
 content/staging/docs/adaptors-spark/index.html     |  120 +-
 content/staging/docs/adaptors-storm.html           |  160 +-
 content/staging/docs/adaptors-storm/index.html     |  160 +-
 content/staging/docs/admin-api-brokers.html        |  170 +--
 content/staging/docs/admin-api-brokers/index.html  |  170 +--
 content/staging/docs/admin-api-clusters.html       |  217 +--
 content/staging/docs/admin-api-clusters/index.html |  217 +--
 content/staging/docs/admin-api-namespaces.html     |  426 +-----
 .../staging/docs/admin-api-namespaces/index.html   |  426 +-----
 .../docs/admin-api-non-persistent-topics.html      |  249 +---
 .../admin-api-non-persistent-topics/index.html     |  249 +---
 content/staging/docs/admin-api-overview.html       |  139 +-
 content/staging/docs/admin-api-overview/index.html |  139 +-
 .../staging/docs/admin-api-partitioned-topics.html |  343 +----
 .../docs/admin-api-partitioned-topics/index.html   |  343 +----
 content/staging/docs/admin-api-permissions.html    |   81 +-
 .../staging/docs/admin-api-permissions/index.html  |   81 +-
 .../staging/docs/admin-api-persistent-topics.html  |  436 +-----
 .../docs/admin-api-persistent-topics/index.html    |  436 +-----
 content/staging/docs/admin-api-tenants.html        |  129 +-
 content/staging/docs/admin-api-tenants/index.html  |  129 +-
 content/staging/docs/administration-dashboard.html |  107 +-
 .../docs/administration-dashboard/index.html       |  107 +-
 content/staging/docs/administration-geo.html       |  153 +-
 content/staging/docs/administration-geo/index.html |  153 +-
 .../docs/administration-load-distribution.html     |  224 +--
 .../administration-load-distribution/index.html    |  224 +--
 content/staging/docs/administration-proxy.html     |  130 +-
 .../staging/docs/administration-proxy/index.html   |  130 +-
 content/staging/docs/administration-stats.html     |  142 +-
 .../staging/docs/administration-stats/index.html   |  142 +-
 content/staging/docs/administration-zk-bk.html     |  303 +---
 .../staging/docs/administration-zk-bk/index.html   |  303 +---
 content/staging/docs/client-libraries-cpp.html     |  185 +--
 .../staging/docs/client-libraries-cpp/index.html   |  185 +--
 content/staging/docs/client-libraries-go.html      |  486 +------
 .../staging/docs/client-libraries-go/index.html    |  486 +------
 content/staging/docs/client-libraries-java.html    |  435 +-----
 .../staging/docs/client-libraries-java/index.html  |  435 +-----
 content/staging/docs/client-libraries-python.html  |  143 +-
 .../docs/client-libraries-python/index.html        |  143 +-
 .../staging/docs/client-libraries-websocket.html   |  427 +-----
 .../docs/client-libraries-websocket/index.html     |  427 +-----
 content/staging/docs/client-libraries.html         |  106 +-
 content/staging/docs/client-libraries/index.html   |  106 +-
 content/staging/docs/concepts-architecture.html    |  627 +-------
 .../staging/docs/concepts-architecture/index.html  |  627 +-------
 content/staging/docs/cookbooks-compaction.html     |  172 +--
 .../staging/docs/cookbooks-compaction/index.html   |  172 +--
 content/staging/docs/cookbooks-deduplication.html  |  168 +--
 .../docs/cookbooks-deduplication/index.html        |  168 +--
 content/staging/docs/cookbooks-encryption.html     |  235 +--
 .../staging/docs/cookbooks-encryption/index.html   |  235 +--
 content/staging/docs/cookbooks-message-queue.html  |  152 +-
 .../docs/cookbooks-message-queue/index.html        |  152 +-
 content/staging/docs/cookbooks-non-persistent.html |  117 +-
 .../docs/cookbooks-non-persistent/index.html       |  117 +-
 content/staging/docs/cookbooks-partitioned.html    |  128 +-
 .../staging/docs/cookbooks-partitioned/index.html  |  128 +-
 .../staging/docs/cookbooks-retention-expiry.html   |  268 +---
 .../docs/cookbooks-retention-expiry/index.html     |  268 +---
 content/staging/docs/cookbooks-tiered-storage.html |  169 +--
 .../docs/cookbooks-tiered-storage/index.html       |  169 +--
 content/staging/docs/deploy-aws.html               |  200 +--
 content/staging/docs/deploy-aws/index.html         |  200 +--
 .../docs/deploy-bare-metal-multi-cluster.html      |  345 +----
 .../deploy-bare-metal-multi-cluster/index.html     |  345 +----
 content/staging/docs/deploy-bare-metal.html        |  240 +--
 content/staging/docs/deploy-bare-metal/index.html  |  240 +--
 content/staging/docs/deploy-dcos.html              |  178 +--
 content/staging/docs/deploy-dcos/index.html        |  178 +--
 content/staging/docs/deploy-kubernetes.html        |  273 +---
 content/staging/docs/deploy-kubernetes/index.html  |  273 +---
 content/staging/docs/deploy-monitoring.html        |  134 +-
 content/staging/docs/deploy-monitoring/index.html  |  134 +-
 content/staging/docs/develop-binary-protocol.html  |  526 +------
 .../docs/develop-binary-protocol/index.html        |  526 +------
 content/staging/docs/develop-cpp.html              |  149 +-
 content/staging/docs/develop-cpp/index.html        |  149 +-
 content/staging/docs/develop-load-manager.html     |  248 +---
 .../staging/docs/develop-load-manager/index.html   |  248 +---
 content/staging/docs/develop-schema.html           |  123 +-
 content/staging/docs/develop-schema/index.html     |  123 +-
 content/staging/docs/develop-tools.html            |  172 +--
 content/staging/docs/develop-tools/index.html      |  172 +--
 content/staging/docs/{ => en}/adaptors-kafka.html  |   29 +-
 .../docs/{ => en}/adaptors-kafka/index.html        |   29 +-
 content/staging/docs/{ => en}/adaptors-spark.html  |   29 +-
 .../docs/{ => en}/adaptors-spark/index.html        |   29 +-
 content/staging/docs/{ => en}/adaptors-storm.html  |   29 +-
 .../docs/{ => en}/adaptors-storm/index.html        |   29 +-
 .../staging/docs/{ => en}/admin-api-brokers.html   |   59 +-
 .../docs/{ => en}/admin-api-brokers/index.html     |   59 +-
 .../staging/docs/{ => en}/admin-api-clusters.html  |   83 +-
 .../docs/{ => en}/admin-api-clusters/index.html    |   83 +-
 .../docs/{ => en}/admin-api-namespaces.html        |   61 +-
 .../docs/{ => en}/admin-api-namespaces/index.html  |   61 +-
 .../{ => en}/admin-api-non-persistent-topics.html  |   37 +-
 .../admin-api-non-persistent-topics/index.html     |   37 +-
 content/staging/docs/en/admin-api-overview.html    |  147 ++
 .../staging/docs/en/admin-api-overview/index.html  |  147 ++
 .../{ => en}/admin-api-partitioned-topics.html     |   53 +-
 .../admin-api-partitioned-topics/index.html        |   53 +-
 content/staging/docs/en/admin-api-permissions.html |   89 ++
 .../docs/en/admin-api-permissions/index.html       |   89 ++
 .../docs/{ => en}/admin-api-persistent-topics.html |   27 +-
 .../admin-api-persistent-topics/index.html         |   27 +-
 content/staging/docs/en/admin-api-tenants.html     |  137 ++
 .../staging/docs/en/admin-api-tenants/index.html   |  137 ++
 .../staging/docs/en/administration-dashboard.html  |  115 ++
 .../docs/en/administration-dashboard/index.html    |  115 ++
 .../staging/docs/{ => en}/administration-geo.html  |   35 +-
 .../docs/{ => en}/administration-geo/index.html    |   35 +-
 .../{ => en}/administration-load-distribution.html |   29 +-
 .../administration-load-distribution/index.html    |   29 +-
 content/staging/docs/en/administration-proxy.html  |  138 ++
 .../docs/en/administration-proxy/index.html        |  138 ++
 .../docs/{ => en}/administration-stats.html        |   29 +-
 .../docs/{ => en}/administration-stats/index.html  |   29 +-
 .../docs/{ => en}/administration-zk-bk.html        |   69 +-
 .../docs/{ => en}/administration-zk-bk/index.html  |   69 +-
 .../docs/{ => en}/client-libraries-cpp.html        |   29 +-
 .../docs/{ => en}/client-libraries-cpp/index.html  |   29 +-
 .../staging/docs/{ => en}/client-libraries-go.html |   69 +-
 .../docs/{ => en}/client-libraries-go/index.html   |   69 +-
 .../docs/{ => en}/client-libraries-java.html       |   71 +-
 .../docs/{ => en}/client-libraries-java/index.html |   71 +-
 .../staging/docs/en/client-libraries-python.html   |  151 ++
 .../docs/en/client-libraries-python/index.html     |  151 ++
 .../docs/{ => en}/client-libraries-websocket.html  |   49 +-
 .../{ => en}/client-libraries-websocket/index.html |   49 +-
 content/staging/docs/en/client-libraries.html      |  114 ++
 .../staging/docs/en/client-libraries/index.html    |  114 ++
 .../docs/{ => en}/concepts-architecture.html       |  127 +-
 .../docs/{ => en}/concepts-architecture/index.html |  127 +-
 .../docs/{ => en}/cookbooks-compaction.html        |   37 +-
 .../docs/{ => en}/cookbooks-compaction/index.html  |   37 +-
 .../docs/{ => en}/cookbooks-deduplication.html     |   43 +-
 .../{ => en}/cookbooks-deduplication/index.html    |   43 +-
 .../docs/{ => en}/cookbooks-encryption.html        |   29 +-
 .../docs/{ => en}/cookbooks-encryption/index.html  |   29 +-
 .../staging/docs/en/cookbooks-message-queue.html   |  160 ++
 .../docs/en/cookbooks-message-queue/index.html     |  160 ++
 .../staging/docs/en/cookbooks-non-persistent.html  |  125 ++
 .../docs/en/cookbooks-non-persistent/index.html    |  125 ++
 content/staging/docs/en/cookbooks-partitioned.html |  136 ++
 .../docs/en/cookbooks-partitioned/index.html       |  136 ++
 .../docs/{ => en}/cookbooks-retention-expiry.html  |   71 +-
 .../{ => en}/cookbooks-retention-expiry/index.html |   71 +-
 .../docs/{ => en}/cookbooks-tiered-storage.html    |   29 +-
 .../{ => en}/cookbooks-tiered-storage/index.html   |   29 +-
 content/staging/docs/{ => en}/deploy-aws.html      |   35 +-
 .../staging/docs/{ => en}/deploy-aws/index.html    |   35 +-
 .../{ => en}/deploy-bare-metal-multi-cluster.html  |   95 +-
 .../deploy-bare-metal-multi-cluster/index.html     |   95 +-
 .../staging/docs/{ => en}/deploy-bare-metal.html   |   65 +-
 .../docs/{ => en}/deploy-bare-metal/index.html     |   65 +-
 content/staging/docs/{ => en}/deploy-dcos.html     |   35 +-
 .../staging/docs/{ => en}/deploy-dcos/index.html   |   35 +-
 .../staging/docs/{ => en}/deploy-kubernetes.html   |   63 +-
 .../docs/{ => en}/deploy-kubernetes/index.html     |   63 +-
 .../staging/docs/{ => en}/deploy-monitoring.html   |   33 +-
 .../docs/{ => en}/deploy-monitoring/index.html     |   33 +-
 .../docs/{ => en}/develop-binary-protocol.html     |   33 +-
 .../{ => en}/develop-binary-protocol/index.html    |   33 +-
 content/staging/docs/{ => en}/develop-cpp.html     |   29 +-
 .../staging/docs/{ => en}/develop-cpp/index.html   |   29 +-
 .../docs/{ => en}/develop-load-manager.html        |   31 +-
 .../docs/{ => en}/develop-load-manager/index.html  |   31 +-
 content/staging/docs/en/develop-schema.html        |  131 ++
 content/staging/docs/en/develop-schema/index.html  |  131 ++
 content/staging/docs/{ => en}/develop-tools.html   |   29 +-
 .../staging/docs/{ => en}/develop-tools/index.html |   29 +-
 content/staging/docs/{ => en}/functions-api.html   |   55 +-
 .../staging/docs/{ => en}/functions-api/index.html |   55 +-
 .../staging/docs/{ => en}/functions-deploying.html |   69 +-
 .../docs/{ => en}/functions-deploying/index.html   |   69 +-
 content/staging/docs/en/functions-guarantees.html  |  119 ++
 .../docs/en/functions-guarantees/index.html        |  119 ++
 content/staging/docs/en/functions-metrics.html     |  114 ++
 .../staging/docs/en/functions-metrics/index.html   |  114 ++
 .../staging/docs/{ => en}/functions-overview.html  |   61 +-
 .../docs/{ => en}/functions-overview/index.html    |   61 +-
 .../docs/{ => en}/functions-quickstart.html        |   41 +-
 .../docs/{ => en}/functions-quickstart/index.html  |   41 +-
 content/staging/docs/en/io-overview.html           |  119 ++
 content/staging/docs/en/io-overview/index.html     |  119 ++
 content/staging/docs/en/io-quickstart.html         |  128 ++
 content/staging/docs/en/io-quickstart/index.html   |  128 ++
 content/staging/docs/en/pulsar-2.0.html            |  143 ++
 content/staging/docs/en/pulsar-2.0/index.html      |  143 ++
 content/staging/docs/{ => en}/pulsar-admin.html    |   29 +-
 .../staging/docs/{ => en}/pulsar-admin/index.html  |   29 +-
 .../staging/docs/{ => en}/reference-cli-tools.html |   31 +-
 .../docs/{ => en}/reference-cli-tools/index.html   |   31 +-
 .../docs/{ => en}/reference-configuration.html     |   35 +-
 .../{ => en}/reference-configuration/index.html    |   35 +-
 content/staging/docs/en/reference-rest-api.html    |   88 ++
 .../staging/docs/en/reference-rest-api/index.html  |   88 ++
 .../docs/{ => en}/reference-terminology.html       |   29 +-
 .../docs/{ => en}/reference-terminology/index.html |   29 +-
 content/staging/docs/{ => en}/security-athenz.html |   41 +-
 .../docs/{ => en}/security-athenz/index.html       |   41 +-
 .../staging/docs/en/security-authorization.html    |  151 ++
 .../docs/en/security-authorization/index.html      |  151 ++
 .../staging/docs/{ => en}/security-encryption.html |   29 +-
 .../docs/{ => en}/security-encryption/index.html   |   29 +-
 .../staging/docs/{ => en}/security-extending.html  |   31 +-
 .../docs/{ => en}/security-extending/index.html    |   31 +-
 content/staging/docs/en/security-overview.html     |  112 ++
 .../staging/docs/en/security-overview/index.html   |  112 ++
 content/staging/docs/{ => en}/security-tls.html    |   45 +-
 .../staging/docs/{ => en}/security-tls/index.html  |   45 +-
 .../staging/docs/{ => en}/standalone-docker.html   |   39 +-
 .../docs/{ => en}/standalone-docker/index.html     |   39 +-
 content/staging/docs/{ => en}/standalone.html      |   53 +-
 .../staging/docs/{ => en}/standalone/index.html    |   53 +-
 content/staging/docs/functions-api.html            |  664 +--------
 content/staging/docs/functions-api/index.html      |  664 +--------
 content/staging/docs/functions-deploying.html      |  258 +---
 .../staging/docs/functions-deploying/index.html    |  258 +---
 content/staging/docs/functions-guarantees.html     |  111 +-
 .../staging/docs/functions-guarantees/index.html   |  111 +-
 content/staging/docs/functions-metrics.html        |  106 +-
 content/staging/docs/functions-metrics/index.html  |  106 +-
 content/staging/docs/functions-overview.html       |  430 +-----
 content/staging/docs/functions-overview/index.html |  430 +-----
 content/staging/docs/functions-quickstart.html     |  267 +---
 .../staging/docs/functions-quickstart/index.html   |  267 +---
 content/staging/docs/io-overview.html              |  111 +-
 content/staging/docs/io-overview/index.html        |  111 +-
 content/staging/docs/io-quickstart.html            |  120 +-
 content/staging/docs/io-quickstart/index.html      |  120 +-
 content/staging/docs/pulsar-2.0.html               |  135 +-
 content/staging/docs/pulsar-2.0/index.html         |  135 +-
 content/staging/docs/pulsar-admin.html             | 1526 +-------------------
 content/staging/docs/pulsar-admin/index.html       | 1526 +-------------------
 content/staging/docs/reference-cli-tools.html      |  625 +-------
 .../staging/docs/reference-cli-tools/index.html    |  625 +-------
 content/staging/docs/reference-configuration.html  |  539 +------
 .../docs/reference-configuration/index.html        |  539 +------
 content/staging/docs/reference-rest-api.html       |   80 +-
 content/staging/docs/reference-rest-api/index.html |   80 +-
 content/staging/docs/reference-terminology.html    |  171 +--
 .../staging/docs/reference-terminology/index.html  |  171 +--
 content/staging/docs/security-athenz.html          |  143 +-
 content/staging/docs/security-athenz/index.html    |  143 +-
 content/staging/docs/security-authorization.html   |  143 +-
 .../staging/docs/security-authorization/index.html |  143 +-
 content/staging/docs/security-encryption.html      |  235 +--
 .../staging/docs/security-encryption/index.html    |  235 +--
 content/staging/docs/security-extending.html       |  254 +---
 content/staging/docs/security-extending/index.html |  254 +---
 content/staging/docs/security-overview.html        |  104 +-
 content/staging/docs/security-overview/index.html  |  104 +-
 content/staging/docs/security-tls.html             |  174 +--
 content/staging/docs/security-tls/index.html       |  174 +--
 content/staging/docs/standalone-docker.html        |  201 +--
 content/staging/docs/standalone-docker/index.html  |  201 +--
 content/staging/docs/standalone.html               |  179 +--
 content/staging/docs/standalone/index.html         |  179 +--
 content/staging/download.html                      |   29 +-
 content/staging/download/index.html                |   29 +-
 content/staging/en/admin-rest-api.html             |   27 +-
 content/staging/en/admin-rest-api/index.html       |   27 +-
 content/staging/en/contact.html                    |   29 +-
 content/staging/en/contact/index.html              |   29 +-
 content/staging/en/download.html                   |   29 +-
 content/staging/en/download/index.html             |   29 +-
 content/staging/en/events.html                     |   27 +-
 content/staging/en/events/index.html               |   27 +-
 content/staging/en/index.html                      |   45 +-
 content/staging/en/release-notes.html              |   27 +-
 content/staging/en/release-notes/index.html        |   27 +-
 content/staging/en/resources.html                  |   27 +-
 content/staging/en/resources/index.html            |   27 +-
 content/staging/en/team.html                       |   27 +-
 content/staging/en/team/index.html                 |   27 +-
 content/staging/en/versions.html                   |   27 +-
 content/staging/en/versions/index.html             |   27 +-
 content/staging/events.html                        |   27 +-
 content/staging/events/index.html                  |   27 +-
 content/staging/index.html                         |   45 +-
 content/staging/{en => ja}/admin-rest-api.html     |   27 +-
 .../staging/{en => ja}/admin-rest-api/index.html   |   27 +-
 content/staging/ja/contact.html                    |   64 +
 content/staging/ja/contact/index.html              |   64 +
 content/staging/ja/download.html                   |   65 +
 content/staging/ja/download/index.html             |   65 +
 content/staging/{en => ja}/events.html             |   27 +-
 content/staging/{en => ja}/events/index.html       |   27 +-
 content/staging/{en => ja}/index.html              |   45 +-
 content/staging/{en => ja}/release-notes.html      |   27 +-
 .../staging/{en => ja}/release-notes/index.html    |   27 +-
 content/staging/ja/resources.html                  |   64 +
 content/staging/ja/resources/index.html            |   64 +
 content/staging/ja/team.html                       |   64 +
 content/staging/ja/team/index.html                 |   64 +
 content/staging/ja/versions.html                   |   64 +
 content/staging/ja/versions/index.html             |   64 +
 content/staging/js/custom.js                       |   18 +-
 content/staging/release-notes.html                 |   27 +-
 content/staging/release-notes/index.html           |   27 +-
 content/staging/resources.html                     |   27 +-
 content/staging/resources/index.html               |   27 +-
 content/staging/sitemap.xml                        |  150 +-
 content/staging/team.html                          |   27 +-
 content/staging/team/index.html                    |   27 +-
 content/staging/versions.html                      |   27 +-
 content/staging/versions/index.html                |   27 +-
 content/staging/zh-CN/admin-rest-api.html          |   81 ++
 content/staging/zh-CN/admin-rest-api/index.html    |   81 ++
 content/staging/zh-CN/contact.html                 |   64 +
 content/staging/zh-CN/contact/index.html           |   64 +
 content/staging/zh-CN/download.html                |   65 +
 content/staging/zh-CN/download/index.html          |   65 +
 content/staging/zh-CN/events.html                  |   70 +
 content/staging/zh-CN/events/index.html            |   70 +
 content/staging/{en => zh-CN}/index.html           |   45 +-
 content/staging/{ => zh-CN}/release-notes.html     |   27 +-
 .../staging/{ => zh-CN}/release-notes/index.html   |   27 +-
 content/staging/zh-CN/resources.html               |   64 +
 content/staging/zh-CN/resources/index.html         |   64 +
 content/staging/zh-CN/team.html                    |   64 +
 content/staging/zh-CN/team/index.html              |   64 +
 content/staging/zh-CN/versions.html                |   64 +
 content/staging/zh-CN/versions/index.html          |   64 +
 383 files changed, 11036 insertions(+), 35172 deletions(-)

diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html
index afa2d4a..4dc895f 100644
--- a/content/docs/latest/adaptors/PulsarSpark/index.html
+++ b/content/docs/latest/adaptors/PulsarSpark/index.html
@@ -1072,9 +1072,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>
           
           
           
@@ -1316,9 +1316,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>
           
           
           
@@ -1526,8 +1526,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1606,6 +1604,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/adaptors/PulsarStorm/index.html b/content/docs/latest/adaptors/PulsarStorm/index.html
index 47d7f4d..272bc15 100644
--- a/content/docs/latest/adaptors/PulsarStorm/index.html
+++ b/content/docs/latest/adaptors/PulsarStorm/index.html
@@ -1076,9 +1076,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>
           
           
           
@@ -1282,8 +1282,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1362,6 +1360,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/admin-api/overview/index.html b/content/docs/latest/admin-api/overview/index.html
index 17fa2c7..18be5f7 100644
--- a/content/docs/latest/admin-api/overview/index.html
+++ b/content/docs/latest/admin-api/overview/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1262,9 +1262,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>
           
           
           
@@ -1792,8 +1792,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1872,6 +1870,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/clients/Cpp/index.html b/content/docs/latest/clients/Cpp/index.html
index 7d18408..f908c43 100644
--- a/content/docs/latest/clients/Cpp/index.html
+++ b/content/docs/latest/clients/Cpp/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1014,9 +1012,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>
           
           
           
@@ -1150,6 +1148,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1278,9 +1278,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 5e43ff0..ed33aa9 100644
--- a/content/docs/latest/clients/Java/index.html
+++ b/content/docs/latest/clients/Java/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1014,9 +1012,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>
           
           
           
@@ -1150,6 +1148,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1292,8 +1292,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1372,6 +1370,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1546,9 +1546,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>
           
           
           
@@ -1792,9 +1792,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 e2f61a7..a7366aa 100644
--- a/content/docs/latest/clients/Python/index.html
+++ b/content/docs/latest/clients/Python/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1014,9 +1012,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>
           
           
           
@@ -1150,6 +1148,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1334,8 +1334,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1408,6 +1406,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 b89a4e4..5b0d087 100644
--- a/content/docs/latest/clients/WebSocket/index.html
+++ b/content/docs/latest/clients/WebSocket/index.html
@@ -1100,9 +1100,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>
           
           
           
@@ -1344,9 +1344,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>
           
           
           
@@ -1568,8 +1568,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1642,6 +1640,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 66aa011..a4f4029 100644
--- a/content/docs/latest/clients/go/index.html
+++ b/content/docs/latest/clients/go/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1014,9 +1012,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>
           
           
           
@@ -1150,6 +1148,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 71d800f..c1f681a 100644
--- a/content/docs/latest/cookbooks/Encryption/index.html
+++ b/content/docs/latest/cookbooks/Encryption/index.html
@@ -1556,9 +1556,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1810,8 +1810,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1888,6 +1886,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 f200db5..64d6b8c 100644
--- a/content/docs/latest/cookbooks/PartitionedTopics/index.html
+++ b/content/docs/latest/cookbooks/PartitionedTopics/index.html
@@ -1062,9 +1062,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1306,9 +1306,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1486,8 +1486,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1606,6 +1604,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1816,9 +1816,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2070,8 +2070,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2148,6 +2146,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 b4ae127..47e590c 100644
--- a/content/docs/latest/cookbooks/RetentionExpiry/index.html
+++ b/content/docs/latest/cookbooks/RetentionExpiry/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1352,9 +1352,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>
           
           
           
@@ -1596,9 +1596,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>
           
           
           
@@ -1840,9 +1840,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>
           
           
           
@@ -2060,8 +2060,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2138,6 +2136,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 7eedf32..7f48657 100644
--- a/content/docs/latest/cookbooks/compaction/index.html
+++ b/content/docs/latest/cookbooks/compaction/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1328,9 +1328,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 85f1ae7..ebb4424 100644
--- a/content/docs/latest/cookbooks/message-deduplication/index.html
+++ b/content/docs/latest/cookbooks/message-deduplication/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1278,9 +1278,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>
           
           
           
@@ -1574,8 +1574,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1652,6 +1650,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 cdd00e2..37e57ce 100644
--- a/content/docs/latest/cookbooks/message-queue/index.html
+++ b/content/docs/latest/cookbooks/message-queue/index.html
@@ -1064,9 +1064,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1292,8 +1292,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1372,6 +1370,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1588,8 +1588,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
@@ -1662,6 +1660,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
@@ -2064,8 +2064,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -2142,6 +2140,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 f8a0daf..ec662d9 100644
--- a/content/docs/latest/cookbooks/tiered-storage/index.html
+++ b/content/docs/latest/cookbooks/tiered-storage/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/deployment/Kubernetes/index.html b/content/docs/latest/deployment/Kubernetes/index.html
index 23c8aad..38cfea9 100644
--- a/content/docs/latest/deployment/Kubernetes/index.html
+++ b/content/docs/latest/deployment/Kubernetes/index.html
@@ -1044,9 +1044,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>
           
           
           
@@ -1288,9 +1288,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 7e59cfd..a5942f7 100644
--- a/content/docs/latest/deployment/aws-cluster/index.html
+++ b/content/docs/latest/deployment/aws-cluster/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/deployment/cluster/index.html b/content/docs/latest/deployment/cluster/index.html
index 5e2e65d..68bb7c9 100644
--- a/content/docs/latest/deployment/cluster/index.html
+++ b/content/docs/latest/deployment/cluster/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index f0148b1..7469715 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
diff --git a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
index 9fec759..7daa506 100644
--- a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
@@ -1014,9 +1014,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>
           
           
           
@@ -1258,9 +1258,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 ea5c78e..fde2dee 100644
--- a/content/docs/latest/getting-started/LocalCluster/index.html
+++ b/content/docs/latest/getting-started/LocalCluster/index.html
@@ -1050,9 +1050,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>
           
           
           
@@ -1296,9 +1296,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 03dfbe6..9d62948 100644
--- a/content/docs/latest/getting-started/Pulsar-2.0/index.html
+++ b/content/docs/latest/getting-started/Pulsar-2.0/index.html
@@ -1552,9 +1552,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 59e9a0e..0c4d1ad 100644
--- a/content/docs/latest/getting-started/docker/index.html
+++ b/content/docs/latest/getting-started/docker/index.html
@@ -1050,9 +1050,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>
           
           
           
@@ -1296,9 +1296,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 2ab8adb..acf72a9 100644
--- a/content/docs/latest/project/BinaryProtocol/index.html
+++ b/content/docs/latest/project/BinaryProtocol/index.html
@@ -994,9 +994,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>
           
           
           
@@ -1238,9 +1238,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 8db1da1..c0a6ebb 100644
--- a/content/docs/latest/project/CompileCpp/index.html
+++ b/content/docs/latest/project/CompileCpp/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1014,9 +1012,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>
           
           
           
@@ -1150,6 +1148,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1278,9 +1278,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 282c4a8..b963d57 100644
--- a/content/docs/latest/project/SimulationTools/index.html
+++ b/content/docs/latest/project/SimulationTools/index.html
@@ -1092,9 +1092,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 47e6c4d..c0f33b6 100644
--- a/content/docs/latest/project/schema-storage/index.html
+++ b/content/docs/latest/project/schema-storage/index.html
@@ -1038,9 +1038,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>
           
           
           
@@ -1284,9 +1284,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 e2fa608..1c69668 100644
--- a/content/docs/latest/reference/CliTools/index.html
+++ b/content/docs/latest/reference/CliTools/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1262,9 +1262,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>
           
           
           
@@ -1508,8 +1508,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1524,9 +1522,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>
           
           
           
@@ -1660,6 +1658,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1762,9 +1762,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>
           
           
           
@@ -2006,9 +2006,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>
           
           
           
@@ -2250,9 +2250,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 f55f71a..5296f68 100644
--- a/content/docs/latest/security/authorization/index.html
+++ b/content/docs/latest/security/authorization/index.html
@@ -998,8 +998,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1118,6 +1116,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -2282,8 +2282,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -2362,6 +2360,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -2522,9 +2522,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 71d800f..c1f681a 100644
--- a/content/docs/latest/security/encryption/index.html
+++ b/content/docs/latest/security/encryption/index.html
@@ -1556,9 +1556,9 @@
           
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1810,8 +1810,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
@@ -1888,6 +1886,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/security/encryption/">Pulsar Encryption</a></li>
           
           
diff --git a/content/ja/adaptors/PulsarSpark/index.html b/content/ja/adaptors/PulsarSpark/index.html
index 04be6ce..65c9ef7 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>
           
           
           
@@ -1006,9 +1006,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>
           
           
           
@@ -1220,6 +1220,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1379,8 +1381,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/adaptors/PulsarStorm/index.html b/content/ja/adaptors/PulsarStorm/index.html
index 042c424..681e054 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>
           
           
           
@@ -976,6 +976,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1135,8 +1137,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/AdminInterface/index.html b/content/ja/admin/AdminInterface/index.html
index 966918d..153dc3f 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>
           
           
           
@@ -948,9 +948,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1480,6 +1480,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1639,8 +1641,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/Authz/index.html b/content/ja/admin/Authz/index.html
index 24107ec..c208d6e 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>
           
           
           
@@ -1966,6 +1966,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -2125,8 +2127,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -2200,9 +2200,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 6f4b916..5b03a7e 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 9be7c95..61590f1 100644
--- a/content/ja/admin/PropertiesNamespaces/index.html
+++ b/content/ja/admin/PropertiesNamespaces/index.html
@@ -1180,9 +1180,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1250,9 +1250,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1280,9 +1280,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 80d5a3b..176e9fe 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>
           
           
           
@@ -996,9 +996,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1180,9 +1180,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1250,9 +1250,9 @@
           
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1280,9 +1280,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1498,9 +1498,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 08a1c27..c33900b 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>
           
           
           
@@ -1036,9 +1036,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1280,9 +1280,9 @@
           
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1524,9 +1524,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 e68465c..79441b3 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>
           
           
@@ -889,8 +891,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -964,9 +964,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 d771b27..e43b89e 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>
           
           
@@ -889,8 +891,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -982,6 +982,8 @@
           
           
           
+          
+          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1141,8 +1143,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/Python/index.html b/content/ja/clients/Python/index.html
index 36cb1b2..297bfdf 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>
           
           
@@ -889,8 +891,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1020,9 +1020,9 @@
           
           
           
-          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
+          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
           
@@ -1042,9 +1042,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 b375aa7..7ad0602 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>
           
           
           
@@ -1034,9 +1034,9 @@
           
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1258,9 +1258,9 @@
           
           
           
-          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
+          <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
           
@@ -1280,9 +1280,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 6ab5c06..69fcad5 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 d35ede2..1aac0af 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>
           
           
           
@@ -978,9 +978,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 b9f77ee..104ebea 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 5b48083..a6fdf5c 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>
           
           
           
@@ -984,9 +984,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 821f215..04534d1 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>
           
           
           
@@ -928,9 +928,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 79844bf..fe66f49 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 60ebfbb..2d817ec 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>
           
           
           
@@ -948,9 +948,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1192,6 +1192,8 @@
           
           
           
+          
+          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -1393,8 +1395,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1442,9 +1442,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1686,9 +1686,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1930,9 +1930,9 @@
           
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
diff --git a/content/staging/admin-rest-api.html b/content/staging/admin-rest-api.html
index c8fec00..8a775ed 100644
--- a/content/staging/admin-rest-api.html
+++ b/content/staging/admin-rest-api.html
@@ -1,4 +1,16 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/ [...]
+        const languagesMenuItem = document.getElementById("languages-menu");
+        const languagesDropDown = document.getElementById("languages-dropdown");
+        languagesMenuItem.addEventListener("click", function(event) {
+          event.preventDefault();
+
+          if (languagesDropDown.className == "hide") {
+            languagesDropDown.className = "visible";
+          } else {
+            languagesDropDown.className = "hide";
+          }
+        });
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="pageContainer"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div id="swagger-ui"></div><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.17.4/swagger-ui.css"/><script src="//unpkg.com/swagger [...]
       const ui = SwaggerUIBundle({
         url: "/staging/swagger/swagger.json",
         dom_id: '#swagger-ui',
@@ -17,16 +29,17 @@
       })
     </script></div></div></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
+      const communityMenu =
         '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
+        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
         '<div id="community-dropdown" class="hide">' +
           '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
+            '<li><a href="/staging/contact">Contact</a></li>' +
             '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
+            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
+            '<li>&nbsp;</li>' +
             '<li><a href="/staging/resources">Resources</a></li>' +
             '<li><a href="/staging/team">Team</a></li>' +
           '</ul>' +
diff --git a/content/staging/admin-rest-api/index.html b/content/staging/admin-rest-api/index.html
index c8fec00..8a775ed 100644
--- a/content/staging/admin-rest-api/index.html
+++ b/content/staging/admin-rest-api/index.html
@@ -1,4 +1,16 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/ [...]
+        const languagesMenuItem = document.getElementById("languages-menu");
+        const languagesDropDown = document.getElementById("languages-dropdown");
+        languagesMenuItem.addEventListener("click", function(event) {
+          event.preventDefault();
+
+          if (languagesDropDown.className == "hide") {
+            languagesDropDown.className = "visible";
+          } else {
+            languagesDropDown.className = "hide";
+          }
+        });
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="pageContainer"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div id="swagger-ui"></div><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.17.4/swagger-ui.css"/><script src="//unpkg.com/swagger [...]
       const ui = SwaggerUIBundle({
         url: "/staging/swagger/swagger.json",
         dom_id: '#swagger-ui',
@@ -17,16 +29,17 @@
       })
     </script></div></div></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
       const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
+      const communityMenu =
         '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
+        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
         '<div id="community-dropdown" class="hide">' +
           '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
+            '<li><a href="/staging/contact">Contact</a></li>' +
             '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
+            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
+            '<li>&nbsp;</li>' +
             '<li><a href="/staging/resources">Resources</a></li>' +
             '<li><a href="/staging/team">Team</a></li>' +
           '</ul>' +
diff --git a/content/staging/contact.html b/content/staging/contact.html
index f5a061c..05afe5c 100644
--- a/content/staging/contact.html
+++ b/content/staging/contact.html
@@ -1,17 +1,28 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
-</span></div><div><span><p>You can self-register at <a href="https://apache-pulsar.herokuapp.com/">https://apache-pulsar.herokuapp.com/</a></p>
-</span></div></div></div></div></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/ [...]
+        const languagesMenuItem = document.getElementById("languages-menu");
+        const languagesDropDown = document.getElementById("languages-dropdown");
+        languagesMenuItem.addEventListener("click", function(event) {
+          event.preventDefault();
+
+          if (languagesDropDown.className == "hide") {
+            languagesDropDown.className = "visible";
+          } else {
+            languagesDropDown.className = "hide";
+          }
+        });
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Contact</h1><hr/></header><p>There are many ways to get help from the Apache Pulsar community. The [...]
       const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
+      const communityMenu =
         '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
+        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
         '<div id="community-dropdown" class="hide">' +
           '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
+            '<li><a href="/staging/contact">Contact</a></li>' +
             '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
+            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
+            '<li>&nbsp;</li>' +
             '<li><a href="/staging/resources">Resources</a></li>' +
             '<li><a href="/staging/team">Team</a></li>' +
           '</ul>' +
diff --git a/content/staging/contact/index.html b/content/staging/contact/index.html
index f5a061c..05afe5c 100644
--- a/content/staging/contact/index.html
+++ b/content/staging/contact/index.html
@@ -1,17 +1,28 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
-</span></div><div><span><p>You can self-register at <a href="https://apache-pulsar.herokuapp.com/">https://apache-pulsar.herokuapp.com/</a></p>
-</span></div></div></div></div></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/ [...]
+        const languagesMenuItem = document.getElementById("languages-menu");
+        const languagesDropDown = document.getElementById("languages-dropdown");
+        languagesMenuItem.addEventListener("click", function(event) {
+          event.preventDefault();
+
+          if (languagesDropDown.className == "hide") {
+            languagesDropDown.className = "visible";
+          } else {
+            languagesDropDown.className = "hide";
+          }
+        });
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer documentContainer postContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Contact</h1><hr/></header><p>There are many ways to get help from the Apache Pulsar community. The [...]
       const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
+      const communityMenu =
         '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
+        '<a id="community-menu" href="#">Community <span style="font-size: 0.75em">&nbsp;▼</span></a>' +
         '<div id="community-dropdown" class="hide">' +
           '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
+            '<li><a href="/staging/contact">Contact</a></li>' +
             '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
+            '<li><a href="https://twitter.com/Apache_Pulsar" target="_blank">Twitter &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/wiki" target="_blank">Wiki &#x2750</a></li>' +
+            '<li><a href="https://github.com/apache/incubator-pulsar/issues" target="_blank">Issue tracking &#x2750</a></li>' +
+            '<li>&nbsp;</li>' +
             '<li><a href="/staging/resources">Resources</a></li>' +
             '<li><a href="/staging/team">Team</a></li>' +
           '</ul>' +
diff --git a/content/staging/docs/adaptors-kafka.html b/content/staging/docs/adaptors-kafka.html
index 7ee9cac..d976689 100644
--- a/content/staging/docs/adaptors-kafka.html
+++ b/content/staging/docs/adaptors-kafka.html
@@ -1,315 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Kafka · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar provides an easy option for applications that are currently written using the [Apache Kafka](http://kafka.apache.org) Java client API."/><meta name="docsearch:language" content=" [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently written using the <a hr [...]
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper" 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-1v [...]
-<p>In an existing application, change the regular Kafka client dependency and replace it with the Pulsar Kafka wrapper. Remove:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.kafka<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>kakfa-clients<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.10.2.1<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>Then include this dependency for the Pulsar Kafka wrapper:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-client-kafka<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>With the new dependency, the existing code should work without any changes. The only
-thing that needs to be adjusted is the configuration, to make sure to point the
-producers and consumers to Pulsar service rather than Kafka and to use a particular
-Pulsar topic.</p>
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper-together-with-existing-kafka-client"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper-together-with-existing-kafka-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 [...]
-<p>When migrating from Kafka to Pulsar, the application might have to use the original kafka client
-and the pulsar kafka wrapper together during migration. Then you should consider using the
-unshaded pulsar kafka client wrapper.</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-client-kafka-original<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>When using this dependency, you need to construct producer using <code>org.apache.kafka.clients.producer.PulsarKafkaProducer</code>
-instead of <code>org.apache.kafka.clients.producer.KafkaProducer</code> and <code>org.apache.kafka.clients.producer.PulsarKafkaConsumer</code> for consumers.</p>
-<h2><a class="anchor" aria-hidden="true" id="producer-example"></a><a href="#producer-example" 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. [...]
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Topic needs to be a regular Pulsar topic</span>
-String topic = <span class="hljs-string">"persistent://public/default/my-topic"</span>;
-
-Properties props = <span class="hljs-keyword">new</span> Properties();
-<span class="hljs-comment">// Point to a Pulsar service</span>
-props.put(<span class="hljs-string">"bootstrap.servers"</span>, <span class="hljs-string">"pulsar://localhost:6650"</span>);
-
-props.put(<span class="hljs-string">"key.serializer"</span>, IntegerSerializer.class.getName());
-props.put(<span class="hljs-string">"value.serializer"</span>, StringSerializer.class.getName());
-
-Producer&lt;Integer, String&gt; producer = <span class="hljs-keyword">new</span> KafkaProducer&lt;&gt;(props);
-
-<span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++) {
-    producer.send(<span class="hljs-keyword">new</span> ProducerRecord&lt;Integer, String&gt;(topic, i, <span class="hljs-string">"hello-"</span> + i));
-    log.info(<span class="hljs-string">"Message {} sent successfully"</span>, i);
-}
-
-producer.close();
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="consumer-example"></a><a href="#consumer-example" 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. [...]
-<pre><code class="hljs css languages- java">String topic = <span class="hljs-string">"persistent://public/default/my-topic"</span>;
-
-Properties props = <span class="hljs-keyword">new</span> Properties();
-<span class="hljs-comment">// Point to a Pulsar service</span>
-props.put(<span class="hljs-string">"bootstrap.servers"</span>, <span class="hljs-string">"pulsar://localhost:6650"</span>);
-props.put(<span class="hljs-string">"group.id"</span>, <span class="hljs-string">"my-subscription-name"</span>);
-props.put(<span class="hljs-string">"enable.auto.commit"</span>, <span class="hljs-string">"false"</span>);
-props.put(<span class="hljs-string">"key.deserializer"</span>, IntegerDeserializer.class.getName());
-props.put(<span class="hljs-string">"value.deserializer"</span>, StringDeserializer.class.getName());
-
-Consumer&lt;Integer, String&gt; consumer = <span class="hljs-keyword">new</span> KafkaConsumer&lt;&gt;(props);
-consumer.subscribe(Arrays.asList(topic));
-
-<span class="hljs-keyword">while</span> (<span class="hljs-keyword">true</span>) {
-    ConsumerRecords&lt;Integer, String&gt; records = consumer.poll(<span class="hljs-number">100</span>);
-    records.forEach(record -&gt; {
-        log.info(<span class="hljs-string">"Received record: {}"</span>, record);
-    });
-
-    <span class="hljs-comment">// Commit last offset</span>
-    consumer.commitSync();
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="complete-examples"></a><a href="#complete-examples" 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- [...]
-<p>You can find the complete producer and consumer examples
-<a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-client-kafka-compat/pulsar-client-kafka-tests/src/test/java/org/apache/pulsar/client/kafka/compat/examples">here</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="compatibility-matrix"></a><a href="#compatibility-matrix" 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>Currently the Pulsar Kafka wrapper supports most of the operations offered by the Kafka API.</p>
-<h4><a class="anchor" aria-hidden="true" id="producer"></a><a href="#producer" 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  [...]
-<p>APIs:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Producer Method</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>Future&lt;RecordMetadata&gt; send(ProducerRecord&lt;K, V&gt; record)</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Currently no support for explicitly set the partition id when publishing</td></tr>
-<tr><td style="text-align:left"><code>Future&lt;RecordMetadata&gt; send(ProducerRecord&lt;K, V&gt; record, Callback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void flush()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>List&lt;PartitionInfo&gt; partitionsFor(String topic)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;MetricName, ? extends Metric&gt; metrics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close(long timeout, TimeUnit unit)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<p>Properties:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>acks</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Durability and quorum writes are configured at the namespace level</td></tr>
-<tr><td style="text-align:left"><code>batch.size</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>block.on.buffer.full</code></td><td style="text-align:left">Yes</td><td style="text-align:left">If true it will block producer, otherwise give error</td></tr>
-<tr><td style="text-align:left"><code>bootstrap.servers</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Needs to point to a single Pulsar service URL</td></tr>
-<tr><td style="text-align:left"><code>buffer.memory</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>client.id</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>compression.type</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Allows <code>gzip</code> and <code>lz4</code>. No <code>snappy</code>.</td></tr>
-<tr><td style="text-align:left"><code>connections.max.idle.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>interceptor.classes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>key.serializer</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>linger.ms</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Controls the group commit time when batching messages</td></tr>
-<tr><td style="text-align:left"><code>max.block.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.in.flight.requests.per.connection</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">In Pulsar ordering is maintained even with multiple requests in flight</td></tr>
-<tr><td style="text-align:left"><code>max.request.size</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metric.reporters</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metrics.num.samples</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metrics.sample.window.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>partitioner.class</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>receive.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>reconnect.backoff.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>request.timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>retries</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Pulsar client retries with exponential backoff until the send timeout expires</td></tr>
-<tr><td style="text-align:left"><code>send.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>value.serializer</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#consumer" 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  [...]
-<p>APIs:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Consumer Method</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>Set&lt;TopicPartition&gt; assignment()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Set&lt;String&gt; subscription()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Collection&lt;String&gt; topics)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Collection&lt;String&gt; topics, ConsumerRebalanceListener callback)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void assign(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Pattern pattern, ConsumerRebalanceListener callback)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void unsubscribe()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>ConsumerRecords&lt;K, V&gt; poll(long timeoutMillis)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitSync()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitSync(Map&lt;TopicPartition, OffsetAndMetadata&gt; offsets)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync(OffsetCommitCallback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync(Map&lt;TopicPartition, OffsetAndMetadata&gt; offsets, OffsetCommitCallback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seek(TopicPartition partition, long offset)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seekToBeginning(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seekToEnd(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>long position(TopicPartition partition)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>OffsetAndMetadata committed(TopicPartition partition)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;MetricName, ? extends Metric&gt; metrics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>List&lt;PartitionInfo&gt; partitionsFor(String topic)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;String, List&lt;PartitionInfo&gt;&gt; listTopics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Set&lt;TopicPartition&gt; paused()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void pause(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void resume(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, OffsetAndTimestamp&gt; offsetsForTimes(Map&lt;TopicPartition, Long&gt; timestampsToSearch)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, Long&gt; beginningOffsets(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, Long&gt; endOffsets(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close(long timeout, TimeUnit unit)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void wakeup()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<p>Properties:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>group.id</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Maps to a Pulsar subscription name</td></tr>
-<tr><td style="text-align:left"><code>max.poll.records</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.poll.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Messages are &quot;pushed&quot; from broker</td></tr>
-<tr><td style="text-align:left"><code>session.timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>heartbeat.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>bootstrap.servers</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Needs to point to a single Pulsar service URL</td></tr>
-<tr><td style="text-align:left"><code>enable.auto.commit</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>auto.commit.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">With auto-commit, acks are sent immediately to broker</td></tr>
-<tr><td style="text-align:left"><code>partition.assignment.strategy</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>auto.offset.reset</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.min.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.max.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.max.wait.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metadata.max.age.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.partition.fetch.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>send.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>receive.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>client.id</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<h2><a class="anchor" aria-hidden="true" id="custom-pulsar-configurations"></a><a href="#custom-pulsar-configurations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>You can configure Pulsar authentication provider directly from the Kafka properties.</p>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-client-properties"></a><a href="#pulsar-client-properties" 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-. [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>pulsar.authentication.class</code></td><td style="text-align:left"></td><td style="text-align:left">Configure to auth provider. Eg. <code>org.apache.pulsar.client.impl.auth.AuthenticationTls</code></td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setUseTls-boolean-"><code>pulsar.use.tls</code></a></td><td style="text-align:left"><code>false</code></td><td style="text-align:left">Enable TLS transport encryption</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setTlsTrustCertsFilePath-java.lang.String-"><code>pulsar.tls.trust.certs.file.path</code></a></td><td style="text-align:left"></td><td style="text-align:left">Path for the TLS trust certificate store</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setTlsAllowInsecureConnection-boolean-"><code>pulsar.tls.allow.insecure.connection</code></a></td><td style="text-align:left"><code>false</code></td><td style="text-align:left">Accept self-signed certificates from brokers</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setOperationTimeout-int-java.util.concurrent.TimeUnit-"><code>pulsar.operation.timeout.ms</code></a></td><td style="text-align:left"><code>30000</code></td><td style="text-align:left">General operations timeout</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setStatsInterval-long-java.util.concurrent.TimeUnit-"><code>pulsar.stats.interval.seconds</code></a></td><td style="text-align:left"><code>60</code></td><td style="text-align:left">Pulsar client lib stats printing interval</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setIoThreads-int-"><code>pulsar.num.io.threads</code></a></td><td style="text-align:left"><code>1</code></td><td style="text-align:left">Number of Netty IO threads to use</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setConnectionsPerBroker-int-"><code>pulsar.connections.per.broker</code></a></td><td style="text-align:left"><code>1</code></td><td style="text-align:left">Max number of connection to open to each broker</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setUseTcpNoDelay-boolean-"><code>pulsar.use.tcp.nodelay</code></a></td><td style="text-align:left"><code>true</code></td><td style="text-align:left">TCP no-delay</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setConcurrentLookupRequest-int-"><code>pulsar.concurrent.lookup.requests</code></a></td><td style="text-align:left"><code>50000</code></td><td style="text-align:left">Max number of concurrent topic lookups</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setMaxNumberOfRejectedRequestPerConnection-int-"><code>pulsar.max.number.rejected.request.per.connection</code></a></td><td style="text-align:left"><code>50</code></td><td style="text-align:left">Threshold of errors to forcefully close a connection</td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-producer-properties"></a><a href="#pulsar-producer-properties" 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 12H [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setProducerName-java.lang.String-"><code>pulsar.producer.name</code></a></td><td style="text-align:left"></td><td style="text-align:left">Specify producer name</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setInitialSequenceId-long-"><code>pulsar.producer.initial.sequence.id</code></a></td><td style="text-align:left"></td><td style="text-align:left">Specify baseline for sequence id for this producer</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setMaxPendingMessages-int-"><code>pulsar.producer.max.pending.messages</code></a></td><td style="text-align:left"><code>1000</code></td><td style="text-align:left">Set the max size of the queue holding the messages pending to receive an acknowledgment from the broker.</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setMaxPendingMessagesAcrossPartitions-int-"><code>pulsar.producer.max.pending.messages.across.partitions</code></a></td><td style="text-align:left"><code>50000</code></td><td style="text-align:left">Set the number of max pending messages across all the partitions</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setBatchingEnabled-boolean-"><code>pulsar.producer.batching.enabled</code></a></td><td style="text-align:left"><code>true</code></td><td style="text-align:left">Control whether automatic batching of messages is enabled for the producer</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setBatchingMaxMessages-int-"><code>pulsar.producer.batching.max.messages</code></a></td><td style="text-align:left"><code>1000</code></td><td style="text-align:left">The maximum number of messages permitted in a batch</td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-consumer-properties"></a><a href="#pulsar-consumer-properties" 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 12H [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setConsumerName-java.lang.String-"><code>pulsar.consumer.name</code></a></td><td style="text-align:left"></td><td style="text-align:left">Set the consumer name</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setReceiverQueueSize-int-"><code>pulsar.consumer.receiver.queue.size</code></a></td><td style="text-align:left">1000</td><td style="text-align:left">Sets the size of the consumer receive queue</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
-</tbody>
-</table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-partitioned-topics">← Managing partitioned topics</a><a class="docs-next button" href="/staging/docs/adaptors-spark">Pulsar adaptor for Apache Spark →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#using-the-pulsar-kafka-compatib [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-kafka";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/adaptors-kafka/index.html b/content/staging/docs/adaptors-kafka/index.html
index 7ee9cac..d976689 100644
--- a/content/staging/docs/adaptors-kafka/index.html
+++ b/content/staging/docs/adaptors-kafka/index.html
@@ -1,315 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Kafka · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar provides an easy option for applications that are currently written using the [Apache Kafka](http://kafka.apache.org) Java client API."/><meta name="docsearch:language" content=" [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-kafka.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Kafka</h1></header><article><div><span><p>Pulsar provides an easy option for applications that are currently written using the <a hr [...]
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper" 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-1v [...]
-<p>In an existing application, change the regular Kafka client dependency and replace it with the Pulsar Kafka wrapper. Remove:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.kafka<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>kakfa-clients<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.10.2.1<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>Then include this dependency for the Pulsar Kafka wrapper:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-client-kafka<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>With the new dependency, the existing code should work without any changes. The only
-thing that needs to be adjusted is the configuration, to make sure to point the
-producers and consumers to Pulsar service rather than Kafka and to use a particular
-Pulsar topic.</p>
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-kafka-compatibility-wrapper-together-with-existing-kafka-client"></a><a href="#using-the-pulsar-kafka-compatibility-wrapper-together-with-existing-kafka-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 [...]
-<p>When migrating from Kafka to Pulsar, the application might have to use the original kafka client
-and the pulsar kafka wrapper together during migration. Then you should consider using the
-unshaded pulsar kafka client wrapper.</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-client-kafka-original<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<p>When using this dependency, you need to construct producer using <code>org.apache.kafka.clients.producer.PulsarKafkaProducer</code>
-instead of <code>org.apache.kafka.clients.producer.KafkaProducer</code> and <code>org.apache.kafka.clients.producer.PulsarKafkaConsumer</code> for consumers.</p>
-<h2><a class="anchor" aria-hidden="true" id="producer-example"></a><a href="#producer-example" 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. [...]
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Topic needs to be a regular Pulsar topic</span>
-String topic = <span class="hljs-string">"persistent://public/default/my-topic"</span>;
-
-Properties props = <span class="hljs-keyword">new</span> Properties();
-<span class="hljs-comment">// Point to a Pulsar service</span>
-props.put(<span class="hljs-string">"bootstrap.servers"</span>, <span class="hljs-string">"pulsar://localhost:6650"</span>);
-
-props.put(<span class="hljs-string">"key.serializer"</span>, IntegerSerializer.class.getName());
-props.put(<span class="hljs-string">"value.serializer"</span>, StringSerializer.class.getName());
-
-Producer&lt;Integer, String&gt; producer = <span class="hljs-keyword">new</span> KafkaProducer&lt;&gt;(props);
-
-<span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++) {
-    producer.send(<span class="hljs-keyword">new</span> ProducerRecord&lt;Integer, String&gt;(topic, i, <span class="hljs-string">"hello-"</span> + i));
-    log.info(<span class="hljs-string">"Message {} sent successfully"</span>, i);
-}
-
-producer.close();
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="consumer-example"></a><a href="#consumer-example" 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. [...]
-<pre><code class="hljs css languages- java">String topic = <span class="hljs-string">"persistent://public/default/my-topic"</span>;
-
-Properties props = <span class="hljs-keyword">new</span> Properties();
-<span class="hljs-comment">// Point to a Pulsar service</span>
-props.put(<span class="hljs-string">"bootstrap.servers"</span>, <span class="hljs-string">"pulsar://localhost:6650"</span>);
-props.put(<span class="hljs-string">"group.id"</span>, <span class="hljs-string">"my-subscription-name"</span>);
-props.put(<span class="hljs-string">"enable.auto.commit"</span>, <span class="hljs-string">"false"</span>);
-props.put(<span class="hljs-string">"key.deserializer"</span>, IntegerDeserializer.class.getName());
-props.put(<span class="hljs-string">"value.deserializer"</span>, StringDeserializer.class.getName());
-
-Consumer&lt;Integer, String&gt; consumer = <span class="hljs-keyword">new</span> KafkaConsumer&lt;&gt;(props);
-consumer.subscribe(Arrays.asList(topic));
-
-<span class="hljs-keyword">while</span> (<span class="hljs-keyword">true</span>) {
-    ConsumerRecords&lt;Integer, String&gt; records = consumer.poll(<span class="hljs-number">100</span>);
-    records.forEach(record -&gt; {
-        log.info(<span class="hljs-string">"Received record: {}"</span>, record);
-    });
-
-    <span class="hljs-comment">// Commit last offset</span>
-    consumer.commitSync();
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="complete-examples"></a><a href="#complete-examples" 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- [...]
-<p>You can find the complete producer and consumer examples
-<a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-client-kafka-compat/pulsar-client-kafka-tests/src/test/java/org/apache/pulsar/client/kafka/compat/examples">here</a>.</p>
-<h2><a class="anchor" aria-hidden="true" id="compatibility-matrix"></a><a href="#compatibility-matrix" 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>Currently the Pulsar Kafka wrapper supports most of the operations offered by the Kafka API.</p>
-<h4><a class="anchor" aria-hidden="true" id="producer"></a><a href="#producer" 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  [...]
-<p>APIs:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Producer Method</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>Future&lt;RecordMetadata&gt; send(ProducerRecord&lt;K, V&gt; record)</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Currently no support for explicitly set the partition id when publishing</td></tr>
-<tr><td style="text-align:left"><code>Future&lt;RecordMetadata&gt; send(ProducerRecord&lt;K, V&gt; record, Callback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void flush()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>List&lt;PartitionInfo&gt; partitionsFor(String topic)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;MetricName, ? extends Metric&gt; metrics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close(long timeout, TimeUnit unit)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<p>Properties:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>acks</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Durability and quorum writes are configured at the namespace level</td></tr>
-<tr><td style="text-align:left"><code>batch.size</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>block.on.buffer.full</code></td><td style="text-align:left">Yes</td><td style="text-align:left">If true it will block producer, otherwise give error</td></tr>
-<tr><td style="text-align:left"><code>bootstrap.servers</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Needs to point to a single Pulsar service URL</td></tr>
-<tr><td style="text-align:left"><code>buffer.memory</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>client.id</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>compression.type</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Allows <code>gzip</code> and <code>lz4</code>. No <code>snappy</code>.</td></tr>
-<tr><td style="text-align:left"><code>connections.max.idle.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>interceptor.classes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>key.serializer</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>linger.ms</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Controls the group commit time when batching messages</td></tr>
-<tr><td style="text-align:left"><code>max.block.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.in.flight.requests.per.connection</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">In Pulsar ordering is maintained even with multiple requests in flight</td></tr>
-<tr><td style="text-align:left"><code>max.request.size</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metric.reporters</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metrics.num.samples</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metrics.sample.window.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>partitioner.class</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>receive.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>reconnect.backoff.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>request.timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>retries</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Pulsar client retries with exponential backoff until the send timeout expires</td></tr>
-<tr><td style="text-align:left"><code>send.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>value.serializer</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="consumer"></a><a href="#consumer" 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  [...]
-<p>APIs:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Consumer Method</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>Set&lt;TopicPartition&gt; assignment()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Set&lt;String&gt; subscription()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Collection&lt;String&gt; topics)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Collection&lt;String&gt; topics, ConsumerRebalanceListener callback)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void assign(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void subscribe(Pattern pattern, ConsumerRebalanceListener callback)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void unsubscribe()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>ConsumerRecords&lt;K, V&gt; poll(long timeoutMillis)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitSync()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitSync(Map&lt;TopicPartition, OffsetAndMetadata&gt; offsets)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync(OffsetCommitCallback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void commitAsync(Map&lt;TopicPartition, OffsetAndMetadata&gt; offsets, OffsetCommitCallback callback)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seek(TopicPartition partition, long offset)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seekToBeginning(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void seekToEnd(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>long position(TopicPartition partition)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>OffsetAndMetadata committed(TopicPartition partition)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;MetricName, ? extends Metric&gt; metrics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>List&lt;PartitionInfo&gt; partitionsFor(String topic)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;String, List&lt;PartitionInfo&gt;&gt; listTopics()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Set&lt;TopicPartition&gt; paused()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void pause(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void resume(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, OffsetAndTimestamp&gt; offsetsForTimes(Map&lt;TopicPartition, Long&gt; timestampsToSearch)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, Long&gt; beginningOffsets(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>Map&lt;TopicPartition, Long&gt; endOffsets(Collection&lt;TopicPartition&gt; partitions)</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close()</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void close(long timeout, TimeUnit unit)</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>void wakeup()</code></td><td style="text-align:left">No</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<p>Properties:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Supported</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>group.id</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Maps to a Pulsar subscription name</td></tr>
-<tr><td style="text-align:left"><code>max.poll.records</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.poll.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">Messages are &quot;pushed&quot; from broker</td></tr>
-<tr><td style="text-align:left"><code>session.timeout.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>heartbeat.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>bootstrap.servers</code></td><td style="text-align:left">Yes</td><td style="text-align:left">Needs to point to a single Pulsar service URL</td></tr>
-<tr><td style="text-align:left"><code>enable.auto.commit</code></td><td style="text-align:left">Yes</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>auto.commit.interval.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left">With auto-commit, acks are sent immediately to broker</td></tr>
-<tr><td style="text-align:left"><code>partition.assignment.strategy</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>auto.offset.reset</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.min.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.max.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>fetch.max.wait.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>metadata.max.age.ms</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>max.partition.fetch.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>send.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>receive.buffer.bytes</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-<tr><td style="text-align:left"><code>client.id</code></td><td style="text-align:left">Ignored</td><td style="text-align:left"></td></tr>
-</tbody>
-</table>
-<h2><a class="anchor" aria-hidden="true" id="custom-pulsar-configurations"></a><a href="#custom-pulsar-configurations" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>You can configure Pulsar authentication provider directly from the Kafka properties.</p>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-client-properties"></a><a href="#pulsar-client-properties" 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-. [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>pulsar.authentication.class</code></td><td style="text-align:left"></td><td style="text-align:left">Configure to auth provider. Eg. <code>org.apache.pulsar.client.impl.auth.AuthenticationTls</code></td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setUseTls-boolean-"><code>pulsar.use.tls</code></a></td><td style="text-align:left"><code>false</code></td><td style="text-align:left">Enable TLS transport encryption</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setTlsTrustCertsFilePath-java.lang.String-"><code>pulsar.tls.trust.certs.file.path</code></a></td><td style="text-align:left"></td><td style="text-align:left">Path for the TLS trust certificate store</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setTlsAllowInsecureConnection-boolean-"><code>pulsar.tls.allow.insecure.connection</code></a></td><td style="text-align:left"><code>false</code></td><td style="text-align:left">Accept self-signed certificates from brokers</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setOperationTimeout-int-java.util.concurrent.TimeUnit-"><code>pulsar.operation.timeout.ms</code></a></td><td style="text-align:left"><code>30000</code></td><td style="text-align:left">General operations timeout</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setStatsInterval-long-java.util.concurrent.TimeUnit-"><code>pulsar.stats.interval.seconds</code></a></td><td style="text-align:left"><code>60</code></td><td style="text-align:left">Pulsar client lib stats printing interval</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setIoThreads-int-"><code>pulsar.num.io.threads</code></a></td><td style="text-align:left"><code>1</code></td><td style="text-align:left">Number of Netty IO threads to use</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setConnectionsPerBroker-int-"><code>pulsar.connections.per.broker</code></a></td><td style="text-align:left"><code>1</code></td><td style="text-align:left">Max number of connection to open to each broker</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setUseTcpNoDelay-boolean-"><code>pulsar.use.tcp.nodelay</code></a></td><td style="text-align:left"><code>true</code></td><td style="text-align:left">TCP no-delay</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setConcurrentLookupRequest-int-"><code>pulsar.concurrent.lookup.requests</code></a></td><td style="text-align:left"><code>50000</code></td><td style="text-align:left">Max number of concurrent topic lookups</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ClientConfiguration.html#setMaxNumberOfRejectedRequestPerConnection-int-"><code>pulsar.max.number.rejected.request.per.connection</code></a></td><td style="text-align:left"><code>50</code></td><td style="text-align:left">Threshold of errors to forcefully close a connection</td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-producer-properties"></a><a href="#pulsar-producer-properties" 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 12H [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setProducerName-java.lang.String-"><code>pulsar.producer.name</code></a></td><td style="text-align:left"></td><td style="text-align:left">Specify producer name</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setInitialSequenceId-long-"><code>pulsar.producer.initial.sequence.id</code></a></td><td style="text-align:left"></td><td style="text-align:left">Specify baseline for sequence id for this producer</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setMaxPendingMessages-int-"><code>pulsar.producer.max.pending.messages</code></a></td><td style="text-align:left"><code>1000</code></td><td style="text-align:left">Set the max size of the queue holding the messages pending to receive an acknowledgment from the broker.</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setMaxPendingMessagesAcrossPartitions-int-"><code>pulsar.producer.max.pending.messages.across.partitions</code></a></td><td style="text-align:left"><code>50000</code></td><td style="text-align:left">Set the number of max pending messages across all the partitions</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setBatchingEnabled-boolean-"><code>pulsar.producer.batching.enabled</code></a></td><td style="text-align:left"><code>true</code></td><td style="text-align:left">Control whether automatic batching of messages is enabled for the producer</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ProducerConfiguration.html#setBatchingMaxMessages-int-"><code>pulsar.producer.batching.max.messages</code></a></td><td style="text-align:left"><code>1000</code></td><td style="text-align:left">The maximum number of messages permitted in a batch</td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-consumer-properties"></a><a href="#pulsar-consumer-properties" 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 12H [...]
-<table>
-<thead>
-<tr><th style="text-align:left">Config property</th><th style="text-align:left">Default</th><th style="text-align:left">Notes</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setConsumerName-java.lang.String-"><code>pulsar.consumer.name</code></a></td><td style="text-align:left"></td><td style="text-align:left">Set the consumer name</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setReceiverQueueSize-int-"><code>pulsar.consumer.receiver.queue.size</code></a></td><td style="text-align:left">1000</td><td style="text-align:left">Sets the size of the consumer receive queue</td></tr>
-<tr><td style="text-align:left"><a href="http://pulsar.apache.org/api/client/org/apache/pulsar/client/api/ConsumerConfiguration.html#setMaxTotalReceiverQueueSizeAcrossPartitions-int-"><code>pulsar.consumer.total.receiver.queue.size.across.partitions</code></a></td><td style="text-align:left">50000</td><td style="text-align:left">Set the max total receiver queue size across partitons</td></tr>
-</tbody>
-</table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-partitioned-topics">← Managing partitioned topics</a><a class="docs-next button" href="/staging/docs/adaptors-spark">Pulsar adaptor for Apache Spark →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-kafka-compatibility-wrapper">Using the Pulsar Kafka compatibility wrapper</a></li><li><a href="#using-the-pulsar-kafka-compatib [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-kafka";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/adaptors-spark.html b/content/staging/docs/adaptors-spark.html
index 04fba4e..288fd48 100644
--- a/content/staging/docs/adaptors-spark.html
+++ b/content/staging/docs/adaptors-spark.html
@@ -1,115 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Spark · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache [Spark Streaming](https://spark.apache.org/streaming/) to receive data from Pulsar."/><meta name="docsea [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache <a href=" [...]
-<p>An application can receive data in <a href="https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds">Resilient Distributed Dataset</a> (RDD) format via the Spark Streaming Pulsar receiver and can process it in a variety of ways.</p>
-<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" 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 [...]
-<p>To use the receiver, include a dependency for the <code>pulsar-spark</code> library in your Java configuration.</p>
-<h3><a class="anchor" aria-hidden="true" id="maven"></a><a href="#maven" 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>If you're using Maven, add this to your <code>pom.xml</code>:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-comment">&lt;!-- in your &lt;properties&gt; block --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">pulsar.version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">pulsar.version</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- in your &lt;dependencies&gt; block --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-spark<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>${pulsar.version}<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="gradle"></a><a href="#gradle" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>If you're using Gradle, add this to your <code>build.gradle</code> file:</p>
-<pre><code class="hljs css languages- groovy"><span class="hljs-keyword">def</span> pulsarVersion = <span class="hljs-string">"2.1.0-incubating"</span>
-
-dependencies {
-    compile <span class="hljs-string">group:</span> <span class="hljs-string">'org.apache.pulsar'</span>, <span class="hljs-string">name:</span> <span class="hljs-string">'pulsar-spark'</span>, <span class="hljs-string">version:</span> pulsarVersion
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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>Pass an instance of <code>SparkStreamingPulsarReceiver</code> to the <code>receiverStream</code> method in <code>JavaStreamingContext</code>:</p>
-<pre><code class="hljs css languages- java">SparkConf conf = <span class="hljs-keyword">new</span> SparkConf().setMaster(<span class="hljs-string">"local[*]"</span>).setAppName(<span class="hljs-string">"pulsar-spark"</span>);
-JavaStreamingContext jssc = <span class="hljs-keyword">new</span> JavaStreamingContext(conf, Durations.seconds(<span class="hljs-number">5</span>));
-
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-ConsumerConfiguration consConf = <span class="hljs-keyword">new</span> ConsumerConfiguration();
-String url = <span class="hljs-string">"pulsar://localhost:6650/"</span>;
-String topic = <span class="hljs-string">"persistent://public/default/topic1"</span>;
-String subs = <span class="hljs-string">"sub1"</span>;
-
-JavaReceiverInputDStream&lt;<span class="hljs-keyword">byte</span>[]&gt; msgs = jssc
-        .receiverStream(<span class="hljs-keyword">new</span> SparkStreamingPulsarReceiver(clientConf, consConf, url, topic, subs));
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-spark/src/test/java/org/apache/pulsar/spark/example/SparkStreamingPulsarReceiverExample.java">here</a>.
-In this example, the number of messages which contain the string &quot;Pulsar&quot; in received messages is counted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/adaptors-kafka">← Pulsar adaptor for Apache Kafka</a><a class="docs-next button" href="/staging/docs/adaptors-storm">Pulsar adaptor for Apache Storm →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ul></li><li><a href="#u [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-spark";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/adaptors-spark/index.html b/content/staging/docs/adaptors-spark/index.html
index 04fba4e..288fd48 100644
--- a/content/staging/docs/adaptors-spark/index.html
+++ b/content/staging/docs/adaptors-spark/index.html
@@ -1,115 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Spark · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache [Spark Streaming](https://spark.apache.org/streaming/) to receive data from Pulsar."/><meta name="docsea [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-spark.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Spark</h1></header><article><div><span><p>The Spark Streaming receiver for Pulsar is a custom receiver that enables Apache <a href=" [...]
-<p>An application can receive data in <a href="https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds">Resilient Distributed Dataset</a> (RDD) format via the Spark Streaming Pulsar receiver and can process it in a variety of ways.</p>
-<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" 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 [...]
-<p>To use the receiver, include a dependency for the <code>pulsar-spark</code> library in your Java configuration.</p>
-<h3><a class="anchor" aria-hidden="true" id="maven"></a><a href="#maven" 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>If you're using Maven, add this to your <code>pom.xml</code>:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-comment">&lt;!-- in your &lt;properties&gt; block --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">pulsar.version</span>&gt;</span>2.1.0-incubating<span class="hljs-tag">&lt;/<span class="hljs-name">pulsar.version</span>&gt;</span>
-
-<span class="hljs-comment">&lt;!-- in your &lt;dependencies&gt; block --&gt;</span>
-<span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-spark<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>${pulsar.version}<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="gradle"></a><a href="#gradle" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>If you're using Gradle, add this to your <code>build.gradle</code> file:</p>
-<pre><code class="hljs css languages- groovy"><span class="hljs-keyword">def</span> pulsarVersion = <span class="hljs-string">"2.1.0-incubating"</span>
-
-dependencies {
-    compile <span class="hljs-string">group:</span> <span class="hljs-string">'org.apache.pulsar'</span>, <span class="hljs-string">name:</span> <span class="hljs-string">'pulsar-spark'</span>, <span class="hljs-string">version:</span> pulsarVersion
-}
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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>Pass an instance of <code>SparkStreamingPulsarReceiver</code> to the <code>receiverStream</code> method in <code>JavaStreamingContext</code>:</p>
-<pre><code class="hljs css languages- java">SparkConf conf = <span class="hljs-keyword">new</span> SparkConf().setMaster(<span class="hljs-string">"local[*]"</span>).setAppName(<span class="hljs-string">"pulsar-spark"</span>);
-JavaStreamingContext jssc = <span class="hljs-keyword">new</span> JavaStreamingContext(conf, Durations.seconds(<span class="hljs-number">5</span>));
-
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-ConsumerConfiguration consConf = <span class="hljs-keyword">new</span> ConsumerConfiguration();
-String url = <span class="hljs-string">"pulsar://localhost:6650/"</span>;
-String topic = <span class="hljs-string">"persistent://public/default/topic1"</span>;
-String subs = <span class="hljs-string">"sub1"</span>;
-
-JavaReceiverInputDStream&lt;<span class="hljs-keyword">byte</span>[]&gt; msgs = jssc
-        .receiverStream(<span class="hljs-keyword">new</span> SparkStreamingPulsarReceiver(clientConf, consConf, url, topic, subs));
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-spark/src/test/java/org/apache/pulsar/spark/example/SparkStreamingPulsarReceiverExample.java">here</a>.
-In this example, the number of messages which contain the string &quot;Pulsar&quot; in received messages is counted.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/adaptors-kafka">← Pulsar adaptor for Apache Kafka</a><a class="docs-next button" href="/staging/docs/adaptors-storm">Pulsar adaptor for Apache Storm →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a><ul class="toc-headings"><li><a href="#maven">Maven</a></li><li><a href="#gradle">Gradle</a></li></ul></li><li><a href="#u [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-spark";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/adaptors-storm.html b/content/staging/docs/adaptors-storm.html
index d3aaeb1..5267edc 100644
--- a/content/staging/docs/adaptors-storm.html
+++ b/content/staging/docs/adaptors-storm.html
@@ -1,155 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Storm · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar Storm is an adaptor for integrating with [Apache Storm](http://storm.apache.org/) topologies. It provides core Storm implementations for sending and receiving data."/><meta name= [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apache.org/">Apache  [...]
-<p>An application can inject data into a Storm topology via a generic Pulsar spout, as well as consume data from a Storm topology via a generic Pulsar bolt.</p>
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-storm-adaptor"></a><a href="#using-the-pulsar-storm-adaptor" 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 1 [...]
-<p>Include dependency for Pulsar Storm Adaptor:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-storm<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>${pulsar.version}<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-spout"></a><a href="#pulsar-spout" 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. [...]
-<p>The Pulsar Spout allows for the data published on a topic to be consumed by a Storm topology. It emits a Storm tuple based on the message received and the <code>MessageToValuesMapper</code> provided by the client.</p>
-<p>The tuples that fail to be processed by the downstream bolts will be re-injected by the spout with an exponential backoff, within a configurable timeout (the default is 60 seconds) or a configurable number of retries, whichever comes first, after which it is acknowledged by the consumer. Here's an example construction of a spout:</p>
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Configure a Pulsar Client</span>
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-
-<span class="hljs-comment">// Configure a Pulsar Consumer</span>
-ConsumerConfiguration consumerConf = <span class="hljs-keyword">new</span> ConsumerConfiguration();  
-
-<span class="hljs-meta">@SuppressWarnings</span>(<span class="hljs-string">"serial"</span>)
-MessageToValuesMapper messageToValuesMapper = <span class="hljs-keyword">new</span> MessageToValuesMapper() {
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> Values <span class="hljs-title">toValues</span><span class="hljs-params">(Message msg)</span> </span>{
-        <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Values(<span class="hljs-keyword">new</span> String(msg.getData()));
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">declareOutputFields</span><span class="hljs-params">(OutputFieldsDeclarer declarer)</span> </span>{
-        <span class="hljs-comment">// declare the output fields</span>
-        declarer.declare(<span class="hljs-keyword">new</span> Fields(<span class="hljs-string">"string"</span>));
-    }
-};
-
-<span class="hljs-comment">// Configure a Pulsar Spout</span>
-PulsarSpoutConfiguration spoutConf = <span class="hljs-keyword">new</span> PulsarSpoutConfiguration();
-spoutConf.setServiceUrl(<span class="hljs-string">"pulsar://broker.messaging.usw.example.com:6650"</span>);
-spoutConf.setTopic(<span class="hljs-string">"persistent://my-property/usw/my-ns/my-topic1"</span>);
-spoutConf.setSubscriptionName(<span class="hljs-string">"my-subscriber-name1"</span>);
-spoutConf.setMessageToValuesMapper(messageToValuesMapper);
-
-<span class="hljs-comment">// Create a Pulsar Spout</span>
-PulsarSpout spout = <span class="hljs-keyword">new</span> PulsarSpout(spoutConf, clientConf, consumerConf);
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-bolt"></a><a href="#pulsar-bolt" 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 [...]
-<p>The Pulsar bolt allows data in a Storm topology to be published on a topic. It publishes messages based on the Storm tuple received and the <code>TupleToMessageMapper</code> provided by the client.</p>
-<p>A partitioned topic can also be used to publish messages on different topics. In the implementation of the <code>TupleToMessageMapper</code>, a &quot;key&quot; will need to be provided in the message which will send the messages with the same key to the same topic. Here's an example bolt:</p>
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Configure a Pulsar Client</span>
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-
-<span class="hljs-comment">// Configure a Pulsar Producer  </span>
-ProducerConfiguration producerConf = <span class="hljs-keyword">new</span> ProducerConfiguration();
-
-<span class="hljs-meta">@SuppressWarnings</span>(<span class="hljs-string">"serial"</span>)
-TupleToMessageMapper tupleToMessageMapper = <span class="hljs-keyword">new</span> TupleToMessageMapper() {
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> Message <span class="hljs-title">toMessage</span><span class="hljs-params">(Tuple tuple)</span> </span>{
-        String receivedMessage = tuple.getString(<span class="hljs-number">0</span>);
-        <span class="hljs-comment">// message processing</span>
-        String processedMsg = receivedMessage + <span class="hljs-string">"-processed"</span>;
-        <span class="hljs-keyword">return</span> MessageBuilder.create().setContent(processedMsg.getBytes()).build();
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">declareOutputFields</span><span class="hljs-params">(OutputFieldsDeclarer declarer)</span> </span>{
-        <span class="hljs-comment">// declare the output fields</span>
-    }
-};
-
-<span class="hljs-comment">// Configure a Pulsar Bolt</span>
-PulsarBoltConfiguration boltConf = <span class="hljs-keyword">new</span> PulsarBoltConfiguration();
-boltConf.setServiceUrl(<span class="hljs-string">"pulsar://broker.messaging.usw.example.com:6650"</span>);
-boltConf.setTopic(<span class="hljs-string">"persistent://my-property/usw/my-ns/my-topic2"</span>);
-boltConf.setTupleToMessageMapper(tupleToMessageMapper);
-
-<span class="hljs-comment">// Create a Pulsar Bolt</span>
-PulsarBolt bolt = <span class="hljs-keyword">new</span> PulsarBolt(boltConf, clientConf);
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-storm/src/test/java/org/apache/pulsar/storm/example/StormExample.java">here</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/adaptors-spark">← Pulsar adaptor for Apache Spark</a><a class="docs-next button" href="/staging/docs/cookbooks-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pulsar Spout</a></li><li><a href="#pulsar-bolt">Pulsar Bolt</a [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-storm";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/adaptors-storm/index.html b/content/staging/docs/adaptors-storm/index.html
index d3aaeb1..5267edc 100644
--- a/content/staging/docs/adaptors-storm/index.html
+++ b/content/staging/docs/adaptors-storm/index.html
@@ -1,155 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar adaptor for Apache Storm · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar Storm is an adaptor for integrating with [Apache Storm](http://storm.apache.org/) topologies. It provides core Storm implementations for sending and receiving data."/><meta name= [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/adaptors-storm.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar adaptor for Apache Storm</h1></header><article><div><span><p>Pulsar Storm is an adaptor for integrating with <a href="http://storm.apache.org/">Apache  [...]
-<p>An application can inject data into a Storm topology via a generic Pulsar spout, as well as consume data from a Storm topology via a generic Pulsar bolt.</p>
-<h2><a class="anchor" aria-hidden="true" id="using-the-pulsar-storm-adaptor"></a><a href="#using-the-pulsar-storm-adaptor" 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 1 [...]
-<p>Include dependency for Pulsar Storm Adaptor:</p>
-<pre><code class="hljs css languages- xml"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.pulsar<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>pulsar-storm<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
-  <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>${pulsar.version}<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
-<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-spout"></a><a href="#pulsar-spout" 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. [...]
-<p>The Pulsar Spout allows for the data published on a topic to be consumed by a Storm topology. It emits a Storm tuple based on the message received and the <code>MessageToValuesMapper</code> provided by the client.</p>
-<p>The tuples that fail to be processed by the downstream bolts will be re-injected by the spout with an exponential backoff, within a configurable timeout (the default is 60 seconds) or a configurable number of retries, whichever comes first, after which it is acknowledged by the consumer. Here's an example construction of a spout:</p>
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Configure a Pulsar Client</span>
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-
-<span class="hljs-comment">// Configure a Pulsar Consumer</span>
-ConsumerConfiguration consumerConf = <span class="hljs-keyword">new</span> ConsumerConfiguration();  
-
-<span class="hljs-meta">@SuppressWarnings</span>(<span class="hljs-string">"serial"</span>)
-MessageToValuesMapper messageToValuesMapper = <span class="hljs-keyword">new</span> MessageToValuesMapper() {
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> Values <span class="hljs-title">toValues</span><span class="hljs-params">(Message msg)</span> </span>{
-        <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Values(<span class="hljs-keyword">new</span> String(msg.getData()));
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">declareOutputFields</span><span class="hljs-params">(OutputFieldsDeclarer declarer)</span> </span>{
-        <span class="hljs-comment">// declare the output fields</span>
-        declarer.declare(<span class="hljs-keyword">new</span> Fields(<span class="hljs-string">"string"</span>));
-    }
-};
-
-<span class="hljs-comment">// Configure a Pulsar Spout</span>
-PulsarSpoutConfiguration spoutConf = <span class="hljs-keyword">new</span> PulsarSpoutConfiguration();
-spoutConf.setServiceUrl(<span class="hljs-string">"pulsar://broker.messaging.usw.example.com:6650"</span>);
-spoutConf.setTopic(<span class="hljs-string">"persistent://my-property/usw/my-ns/my-topic1"</span>);
-spoutConf.setSubscriptionName(<span class="hljs-string">"my-subscriber-name1"</span>);
-spoutConf.setMessageToValuesMapper(messageToValuesMapper);
-
-<span class="hljs-comment">// Create a Pulsar Spout</span>
-PulsarSpout spout = <span class="hljs-keyword">new</span> PulsarSpout(spoutConf, clientConf, consumerConf);
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-bolt"></a><a href="#pulsar-bolt" 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 [...]
-<p>The Pulsar bolt allows data in a Storm topology to be published on a topic. It publishes messages based on the Storm tuple received and the <code>TupleToMessageMapper</code> provided by the client.</p>
-<p>A partitioned topic can also be used to publish messages on different topics. In the implementation of the <code>TupleToMessageMapper</code>, a &quot;key&quot; will need to be provided in the message which will send the messages with the same key to the same topic. Here's an example bolt:</p>
-<pre><code class="hljs css languages- java"><span class="hljs-comment">// Configure a Pulsar Client</span>
-ClientConfiguration clientConf = <span class="hljs-keyword">new</span> ClientConfiguration();
-
-<span class="hljs-comment">// Configure a Pulsar Producer  </span>
-ProducerConfiguration producerConf = <span class="hljs-keyword">new</span> ProducerConfiguration();
-
-<span class="hljs-meta">@SuppressWarnings</span>(<span class="hljs-string">"serial"</span>)
-TupleToMessageMapper tupleToMessageMapper = <span class="hljs-keyword">new</span> TupleToMessageMapper() {
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> Message <span class="hljs-title">toMessage</span><span class="hljs-params">(Tuple tuple)</span> </span>{
-        String receivedMessage = tuple.getString(<span class="hljs-number">0</span>);
-        <span class="hljs-comment">// message processing</span>
-        String processedMsg = receivedMessage + <span class="hljs-string">"-processed"</span>;
-        <span class="hljs-keyword">return</span> MessageBuilder.create().setContent(processedMsg.getBytes()).build();
-    }
-
-    <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">declareOutputFields</span><span class="hljs-params">(OutputFieldsDeclarer declarer)</span> </span>{
-        <span class="hljs-comment">// declare the output fields</span>
-    }
-};
-
-<span class="hljs-comment">// Configure a Pulsar Bolt</span>
-PulsarBoltConfiguration boltConf = <span class="hljs-keyword">new</span> PulsarBoltConfiguration();
-boltConf.setServiceUrl(<span class="hljs-string">"pulsar://broker.messaging.usw.example.com:6650"</span>);
-boltConf.setTopic(<span class="hljs-string">"persistent://my-property/usw/my-ns/my-topic2"</span>);
-boltConf.setTupleToMessageMapper(tupleToMessageMapper);
-
-<span class="hljs-comment">// Create a Pulsar Bolt</span>
-PulsarBolt bolt = <span class="hljs-keyword">new</span> PulsarBolt(boltConf, clientConf);
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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>You can find a complete example <a href="https://github.com/apache/incubator-pulsar/tree/master/pulsar-storm/src/test/java/org/apache/pulsar/storm/example/StormExample.java">here</a>.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/adaptors-spark">← Pulsar adaptor for Apache Spark</a><a class="docs-next button" href="/staging/docs/cookbooks-tiered-storage">Tiered Storage →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#using-the-pulsar-storm-adaptor">Using the Pulsar Storm Adaptor</a></li><li><a href="#pulsar-spout">Pulsar Spout</a></li><li><a href="#pulsar-bolt">Pulsar Bolt</a [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/adaptors-storm";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-brokers.html b/content/staging/docs/admin-api-brokers.html
index 6c2afa6..e2c1dbc 100644
--- a/content/staging/docs/admin-api-brokers.html
+++ b/content/staging/docs/admin-api-brokers.html
@@ -1,165 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Brokers · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar brokers consist of two components:"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Managing Brokers · Apache Pulsar"/><meta property="og:type" content="websit [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
-<ol>
-<li>An HTTP server exposing a <a href="/staging/docs/reference-rest-api">REST interface</a> administration and <a href="/staging/docs/reference-terminology#topic">topic</a> lookup.</li>
-<li>A dispatcher that handles all Pulsar <a href="/staging/docs/reference-terminology#message">message</a> transfers.</li>
-</ol>
-<p><a href="/staging/docs/reference-terminology#broker">Brokers</a> can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#brokers"><code>brokers</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/brokers</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>brokers</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<p>In addition to being configurable when you start them up, brokers can also be <a href="#dynamic-broker-configuration">dynamically configured</a>.</p>
-<blockquote>
-<p>See the <a href="/staging/docs/reference-configuration#broker">Configuration</a> page for a full listing of broker-specific configuration parameters.</p>
-</blockquote>
-<h2><a class="anchor" aria-hidden="true" id="brokers-resources"></a><a href="#brokers-resources" 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- [...]
-<h3><a class="anchor" aria-hidden="true" id="list-active-brokers"></a><a href="#list-active-brokers" 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.2 [...]
-<p>Fetch all available active brokers that are serving traffic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers list use</span>
-</code></pre>
-<pre><code class="hljs"><span class="hljs-selector-tag">broker1</span><span class="hljs-selector-class">.use</span><span class="hljs-selector-class">.org</span><span class="hljs-selector-class">.com</span><span class="hljs-selector-pseudo">:8080</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint GET /admin/v2/brokers/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/:cluster">More info</a></p>
-<h6><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">admin.brokers().getActiveBrokers(clusterName)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="list-of-namespaces-owned-by-a-given-broker"></a><a href="#list-of-namespaces-owned-by-a-given-broker" 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-1v1h1c [...]
-<p>It finds all namespaces which are owned and served by a given broker.</p>
-<h6><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-2.09V6.2 [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers namespaces use \</span>
-  --url broker1.use.org.com:8080
-</code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"my-property/use/my-ns/0x00000000_0xffffffff"</span>: {
-    <span class="hljs-attr">"broker_assignment"</span>: <span class="hljs-string">"shared"</span>,
-    <span class="hljs-attr">"is_controlled"</span>: <span class="hljs-literal">false</span>,
-    <span class="hljs-attr">"is_active"</span>: <span class="hljs-literal">true</span>
-  }
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-1"></a><a href="#rest-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>{% endpoint GET /admin/v2/brokers/:cluster/:broker:/ownedNamespaces %}</p>
-<h6><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getOwnedNamespaces(cluster,brokerUrl);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="dynamic-broker-configuration"></a><a href="#dynamic-broker-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 [...]
-<p>One way to configure a Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> is to supply a <a href="/staging/docs/reference-configuration#broker">configuration</a> when the broker is <a href="/staging/docs/reference-cli-tools#pulsar-broker">started up</a>.</p>
-<p>But since all broker configuration in Pulsar is stored in ZooKeeper, configuration values can also be dynamically updated <em>while the broker is running</em>. When you update broker configuration dynamically, ZooKeeper will notify the broker of the change and the broker will then override any existing configuration values.</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#brokers"><code>brokers</code></a> command for the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool has a variety of subcommands that enable you to manipulate a broker's configuration dynamically, enabling you to <a href="#update-dynamic-configuration">update config values</a> and more.</li>
-<li>In the Pulsar admin <a href="/staging/docs/reference-rest-api">REST API</a>, dynamic configuration is managed through the <code>/admin/v2/brokers/configuration</code> endpoint.</li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="update-dynamic-configuration"></a><a href="#update-dynamic-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 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>The <a href="/staging/docs/pulsar-admin#brokers-update-dynamic-config"><code>update-dynamic-config</code></a> subcommand will update existing configuration. It takes two arguments: the name of the parameter and the new value. Here's an example for the <a href="/staging/docs/reference-configuration#broker-brokerShutdownTimeoutMs"><code>brokerShutdownTimeoutMs</code></a> parameter:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers update-dynamic-config brokerShutdownTimeoutMs 100</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint POST /admin/v2/brokers/configuration/:configName/:configValue %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration/:configName/:configValue">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().updateDynamicConfiguration(configName, configValue);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-updated-values"></a><a href="#list-updated-values" 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.2 [...]
-<p>Fetch a list of all potentially updatable configuration parameters.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers list-dynamic-config</span>
-brokerShutdownTimeoutMs
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/brokers/configuration %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getDynamicConfigurationNames();
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-all"></a><a href="#list-all" 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  [...]
-<p>Fetch a list of all parameters that have been dynamically updated.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers get-all-dynamic-config</span>
-brokerShutdownTimeoutMs:100
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/brokers/configuration/values %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration/values">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getAllDynamicConfigurations();
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-tenants">← Managing Tenants</a><a class="docs-next button" href="/staging/docs/admin-api-namespaces">Managing Namespaces →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">List active brokers</a></li><li><a href="#dynamic-broker-configuration"> [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-brokers";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-brokers/index.html b/content/staging/docs/admin-api-brokers/index.html
index 6c2afa6..e2c1dbc 100644
--- a/content/staging/docs/admin-api-brokers/index.html
+++ b/content/staging/docs/admin-api-brokers/index.html
@@ -1,165 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Brokers · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar brokers consist of two components:"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Managing Brokers · Apache Pulsar"/><meta property="og:type" content="websit [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-brokers.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Brokers</h1></header><article><div><span><p>Pulsar brokers consist of two components:</p>
-<ol>
-<li>An HTTP server exposing a <a href="/staging/docs/reference-rest-api">REST interface</a> administration and <a href="/staging/docs/reference-terminology#topic">topic</a> lookup.</li>
-<li>A dispatcher that handles all Pulsar <a href="/staging/docs/reference-terminology#message">message</a> transfers.</li>
-</ol>
-<p><a href="/staging/docs/reference-terminology#broker">Brokers</a> can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#brokers"><code>brokers</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/brokers</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>brokers</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin.html">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<p>In addition to being configurable when you start them up, brokers can also be <a href="#dynamic-broker-configuration">dynamically configured</a>.</p>
-<blockquote>
-<p>See the <a href="/staging/docs/reference-configuration#broker">Configuration</a> page for a full listing of broker-specific configuration parameters.</p>
-</blockquote>
-<h2><a class="anchor" aria-hidden="true" id="brokers-resources"></a><a href="#brokers-resources" 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- [...]
-<h3><a class="anchor" aria-hidden="true" id="list-active-brokers"></a><a href="#list-active-brokers" 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.2 [...]
-<p>Fetch all available active brokers that are serving traffic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers list use</span>
-</code></pre>
-<pre><code class="hljs"><span class="hljs-selector-tag">broker1</span><span class="hljs-selector-class">.use</span><span class="hljs-selector-class">.org</span><span class="hljs-selector-class">.com</span><span class="hljs-selector-pseudo">:8080</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint GET /admin/v2/brokers/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/:cluster">More info</a></p>
-<h6><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">admin.brokers().getActiveBrokers(clusterName)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="list-of-namespaces-owned-by-a-given-broker"></a><a href="#list-of-namespaces-owned-by-a-given-broker" 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-1v1h1c [...]
-<p>It finds all namespaces which are owned and served by a given broker.</p>
-<h6><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-2.09V6.2 [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers namespaces use \</span>
-  --url broker1.use.org.com:8080
-</code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"my-property/use/my-ns/0x00000000_0xffffffff"</span>: {
-    <span class="hljs-attr">"broker_assignment"</span>: <span class="hljs-string">"shared"</span>,
-    <span class="hljs-attr">"is_controlled"</span>: <span class="hljs-literal">false</span>,
-    <span class="hljs-attr">"is_active"</span>: <span class="hljs-literal">true</span>
-  }
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-1"></a><a href="#rest-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>{% endpoint GET /admin/v2/brokers/:cluster/:broker:/ownedNamespaces %}</p>
-<h6><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getOwnedNamespaces(cluster,brokerUrl);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="dynamic-broker-configuration"></a><a href="#dynamic-broker-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 [...]
-<p>One way to configure a Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> is to supply a <a href="/staging/docs/reference-configuration#broker">configuration</a> when the broker is <a href="/staging/docs/reference-cli-tools#pulsar-broker">started up</a>.</p>
-<p>But since all broker configuration in Pulsar is stored in ZooKeeper, configuration values can also be dynamically updated <em>while the broker is running</em>. When you update broker configuration dynamically, ZooKeeper will notify the broker of the change and the broker will then override any existing configuration values.</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#brokers"><code>brokers</code></a> command for the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool has a variety of subcommands that enable you to manipulate a broker's configuration dynamically, enabling you to <a href="#update-dynamic-configuration">update config values</a> and more.</li>
-<li>In the Pulsar admin <a href="/staging/docs/reference-rest-api">REST API</a>, dynamic configuration is managed through the <code>/admin/v2/brokers/configuration</code> endpoint.</li>
-</ul>
-<h3><a class="anchor" aria-hidden="true" id="update-dynamic-configuration"></a><a href="#update-dynamic-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 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>The <a href="/staging/docs/pulsar-admin#brokers-update-dynamic-config"><code>update-dynamic-config</code></a> subcommand will update existing configuration. It takes two arguments: the name of the parameter and the new value. Here's an example for the <a href="/staging/docs/reference-configuration#broker-brokerShutdownTimeoutMs"><code>brokerShutdownTimeoutMs</code></a> parameter:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers update-dynamic-config brokerShutdownTimeoutMs 100</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint POST /admin/v2/brokers/configuration/:configName/:configValue %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration/:configName/:configValue">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().updateDynamicConfiguration(configName, configValue);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-updated-values"></a><a href="#list-updated-values" 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.2 [...]
-<p>Fetch a list of all potentially updatable configuration parameters.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers list-dynamic-config</span>
-brokerShutdownTimeoutMs
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/brokers/configuration %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getDynamicConfigurationNames();
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-all"></a><a href="#list-all" 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  [...]
-<p>Fetch a list of all parameters that have been dynamically updated.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin brokers get-all-dynamic-config</span>
-brokerShutdownTimeoutMs:100
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/brokers/configuration/values %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/brokers/configuration/values">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.brokers().getAllDynamicConfigurations();
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-tenants">← Managing Tenants</a><a class="docs-next button" href="/staging/docs/admin-api-namespaces">Managing Namespaces →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#brokers-resources">Brokers resources</a><ul class="toc-headings"><li><a href="#list-active-brokers">List active brokers</a></li><li><a href="#dynamic-broker-configuration"> [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-brokers";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-clusters.html b/content/staging/docs/admin-api-clusters.html
index b8d400d..58dd222 100644
--- a/content/staging/docs/admin-api-clusters.html
+++ b/content/staging/docs/admin-api-clusters.html
@@ -1,212 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/staging/docs/reference-terminology#broker), one or more [BookKeeper](/staging/docs/reference-terminology#bookkeeper)"/><meta name="docsearch:l [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/staging/docs/reference-terminology#broker">b [...]
-servers (aka <a href="/staging/docs/reference-terminology#bookie">bookies</a>), and a <a href="https://zookeeper.apache.org">ZooKeeper</a> cluster that provides configuration and coordination management.</p>
-<p>Clusters can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" 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- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" 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>New clusters can be provisioned using the admin interface.</p>
-<blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
-</blockquote>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can provision a new cluster using the <a href="/staging/docs/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
-  --url http://my-cluster.org.com:8080 \
-  --broker-url pulsar://my-cluster.org.com:6650
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint PUT /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">ClusterData clusterData = <span class="hljs-keyword">new</span> ClusterData(
-        serviceUrl,
-        serviceUrlTls,
-        brokerServiceUrl,
-        brokerServiceUrlTls
-);
-admin.clusters().createCluster(clusterName, clusterData);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" 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 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/staging/docs/concepts-architecture#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
-<ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/staging/docs/reference-terminology#broker">brokers</a> in the cluster</li>
-</ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/staging/docs/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API
-or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly.
-Instead, you can use the <a href="/staging/docs/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular
-the <a href="/staging/docs/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
-</blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
-<pre><code class="hljs css languages- shell">bin/pulsar initialize-cluster-metadata \
-  --cluster us-west \
-  --zookeeper zk1.us-west.example.com:2181 \
-  --global-zookeeper zk1.us-west.example.com:2184 \
-  --web-service-url http://pulsar.us-west.example.com:8080/ \
-  --web-service-url-tls https://pulsar.us-west.example.com:8443/ \
-  --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
-  --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
-</code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/staging/docs/security-tls">TLS authentication</a> in your instance.</p>
-<h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-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.22-2- [...]
-<p>You can fetch the <a href="/staging/docs/reference-configuration">configuration</a> for an existing cluster at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-get"><code>get</code></a> subcommand and specify the name of the cluster. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters get cluster-1</span>
-{
-    "serviceUrl": "http://my-cluster.org.com:8080/",
-    "serviceUrlTls": null,
-    "brokerServiceUrl": "pulsar://my-cluster.org.com:6650/",
-    "brokerServiceUrlTls": null
-    "peerClusterNames": null
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().getCluster(clusterName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update"></a><a href="#update" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can update the configuration for an existing cluster at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-update"><code>update</code></a> subcommand and specify new configuration values using flags.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters update cluster-1 \</span>
-  --url http://my-cluster.org.com:4081 \
-  --broker-url pulsar://my-cluster.org.com:3350
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint POST /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">ClusterData clusterData = <span class="hljs-keyword">new</span> ClusterData(
-        serviceUrl,
-        serviceUrlTls,
-        brokerServiceUrl,
-        brokerServiceUrlTls
-);
-admin.clusters().updateCluster(clusterName, clusterData);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Clusters can be deleted from a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-delete"><code>delete</code></a> subcommand and specify the name of the cluster.</p>
-<pre><code class="hljs">$ pulsar-admin clusters <span class="hljs-keyword">delete</span> <span class="hljs-keyword">cluster</span><span class="hljs-number">-1</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().deleteCluster(clusterName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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>You can fetch a list of all clusters in a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-list"><code>list</code></a> subcommand.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters list</span>
-cluster-1
-cluster-2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/clusters %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters">More info</a></p>
-<h6><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().getClusters();
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update-peer-cluster-data"></a><a href="#update-peer-cluster-data" 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-. [...]
-<p>Peer clusters can be configured for a given cluster in a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-update-peer-clusters"><code>update-peer-clusters</code></a> subcommand and specify the list of peer-cluster names.</p>
-<pre><code class="hljs">$ pulsar-admin <span class="hljs-keyword">update</span>-peer-clusters <span class="hljs-keyword">cluster</span><span class="hljs-number">-1</span> --peer-clusters <span class="hljs-keyword">cluster</span><span class="hljs-number">-2</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/clusters/:cluster/peers %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster/peers">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-overview">← The Pulsar admin interface</a><a class="docs-next button" href="/staging/docs/admin-api-tenants">Managing Tenants →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a></li><li><a href="#initialize-cluster-metadata">Initialize clu [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-clusters";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-clusters/index.html b/content/staging/docs/admin-api-clusters/index.html
index b8d400d..58dd222 100644
--- a/content/staging/docs/admin-api-clusters/index.html
+++ b/content/staging/docs/admin-api-clusters/index.html
@@ -1,212 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/staging/docs/reference-terminology#broker), one or more [BookKeeper](/staging/docs/reference-terminology#bookkeeper)"/><meta name="docsearch:l [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-clusters.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/staging/docs/reference-terminology#broker">b [...]
-servers (aka <a href="/staging/docs/reference-terminology#bookie">bookies</a>), and a <a href="https://zookeeper.apache.org">ZooKeeper</a> cluster that provides configuration and coordination management.</p>
-<p>Clusters can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" 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- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" 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>New clusters can be provisioned using the admin interface.</p>
-<blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
-</blockquote>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can provision a new cluster using the <a href="/staging/docs/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
-  --url http://my-cluster.org.com:8080 \
-  --broker-url pulsar://my-cluster.org.com:6650
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint PUT /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">ClusterData clusterData = <span class="hljs-keyword">new</span> ClusterData(
-        serviceUrl,
-        serviceUrlTls,
-        brokerServiceUrl,
-        brokerServiceUrlTls
-);
-admin.clusters().createCluster(clusterName, clusterData);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" 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 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/staging/docs/concepts-architecture#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
-<ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/staging/docs/reference-terminology#broker">brokers</a> in the cluster</li>
-</ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/staging/docs/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API
-or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly.
-Instead, you can use the <a href="/staging/docs/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular
-the <a href="/staging/docs/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
-</blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
-<pre><code class="hljs css languages- shell">bin/pulsar initialize-cluster-metadata \
-  --cluster us-west \
-  --zookeeper zk1.us-west.example.com:2181 \
-  --global-zookeeper zk1.us-west.example.com:2184 \
-  --web-service-url http://pulsar.us-west.example.com:8080/ \
-  --web-service-url-tls https://pulsar.us-west.example.com:8443/ \
-  --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
-  --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
-</code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/staging/docs/security-tls">TLS authentication</a> in your instance.</p>
-<h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-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.22-2- [...]
-<p>You can fetch the <a href="/staging/docs/reference-configuration">configuration</a> for an existing cluster at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-get"><code>get</code></a> subcommand and specify the name of the cluster. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters get cluster-1</span>
-{
-    "serviceUrl": "http://my-cluster.org.com:8080/",
-    "serviceUrlTls": null,
-    "brokerServiceUrl": "pulsar://my-cluster.org.com:6650/",
-    "brokerServiceUrlTls": null
-    "peerClusterNames": null
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().getCluster(clusterName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update"></a><a href="#update" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can update the configuration for an existing cluster at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-update"><code>update</code></a> subcommand and specify new configuration values using flags.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters update cluster-1 \</span>
-  --url http://my-cluster.org.com:4081 \
-  --broker-url pulsar://my-cluster.org.com:3350
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint POST /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">ClusterData clusterData = <span class="hljs-keyword">new</span> ClusterData(
-        serviceUrl,
-        serviceUrlTls,
-        brokerServiceUrl,
-        brokerServiceUrlTls
-);
-admin.clusters().updateCluster(clusterName, clusterData);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Clusters can be deleted from a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-delete"><code>delete</code></a> subcommand and specify the name of the cluster.</p>
-<pre><code class="hljs">$ pulsar-admin clusters <span class="hljs-keyword">delete</span> <span class="hljs-keyword">cluster</span><span class="hljs-number">-1</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/clusters/:cluster %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().deleteCluster(clusterName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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>You can fetch a list of all clusters in a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-list"><code>list</code></a> subcommand.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters list</span>
-cluster-1
-cluster-2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/clusters %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters">More info</a></p>
-<h6><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().getClusters();
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update-peer-cluster-data"></a><a href="#update-peer-cluster-data" 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-. [...]
-<p>Peer clusters can be configured for a given cluster in a Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#clusters-update-peer-clusters"><code>update-peer-clusters</code></a> subcommand and specify the list of peer-cluster names.</p>
-<pre><code class="hljs">$ pulsar-admin <span class="hljs-keyword">update</span>-peer-clusters <span class="hljs-keyword">cluster</span><span class="hljs-number">-1</span> --peer-clusters <span class="hljs-keyword">cluster</span><span class="hljs-number">-2</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/clusters/:cluster/peers %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/clusters/:cluster/peers">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-overview">← The Pulsar admin interface</a><a class="docs-next button" href="/staging/docs/admin-api-tenants">Managing Tenants →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a></li><li><a href="#initialize-cluster-metadata">Initialize clu [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-clusters";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-namespaces.html b/content/staging/docs/admin-api-namespaces.html
index 759313b..c17f282 100644
--- a/content/staging/docs/admin-api-namespaces.html
+++ b/content/staging/docs/admin-api-namespaces.html
@@ -1,421 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Namespaces · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar [namespaces](/staging/docs/reference-terminology#namespace) are logical groupings of [topics](/staging/docs/reference-terminology#topic)."/><meta name="docsearch:language" content="en"/><met [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/staging/docs/reference-terminology#namespace">namespaces</a> are logical groupi [...]
-<p>Namespaces can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#clusters"><code>namespaces</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/namespaces</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>namespaces</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="namespaces-resources"></a><a href="#namespaces-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can create new namespaces under a given <a href="/staging/docs/reference-terminology#tenant">tenant</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-create"><code>create</code></a> subcommand and specify the namespace by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/<span class="hljs-built_in">test</span>-namespace</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint PUT /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">admin.namespaces().createNamespace(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-policies"></a><a href="#get-policies" 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. [...]
-<p>You can fetch the current policies associated with a namespace at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-policies"><code>policies</code></a> subcommand and specify the namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces policies <span class="hljs-built_in">test</span>-tenant/<span class="hljs-built_in">test</span>-namespace</span>
-{
-  "auth_policies": {
-    "namespace_auth": {},
-    "destination_auth": {}
-  },
-  "replication_clusters": [],
-  "bundles_activated": true,
-  "bundles": {
-    "boundaries": [
-      "0x00000000",
-      "0xffffffff"
-    ],
-    "numBundles": 1
-  },
-  "backlog_quota_map": {},
-  "persistence": null,
-  "latency_stats_sample_rate": {},
-  "message_ttl_in_seconds": 0,
-  "retention_policies": null,
-  "deleted": false
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getPolicies(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-namespaces-within-a-tenant"></a><a href="#list-namespaces-within-a-tenant" 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 [...]
-<p>You can list all namespaces within a given Pulsar <a href="/staging/docs/reference-terminology#tenant">tenant</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-list"><code>list</code></a> subcommand and specify the tenant:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces list <span class="hljs-built_in">test</span>-tenant</span>
-test-tenant/ns1
-test-tenant/ns2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaces(tenant);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaces(tenant);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can delete existing namespaces from a tenant.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-delete"><code>delete</code></a> subcommand and specify the namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces delete <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint DELETE /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().deleteNamespace(namespace);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-replication-cluster"></a><a href="#set-replication-cluster" 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 [...]
-<p>It sets replication clusters for a namespace, so Pulsar can internally replicate publish message from one colo to another colo.</p>
-<h6><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-2.09V6.2 [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-clusters</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1 </span>\
-  <span class="hljs-built_in">--clusters</span> <span class="hljs-string">cl1
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-1"></a><a href="#rest-1" 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. [...]
-<pre><code class="hljs">{% endpoint POST /admin/v2/namespaces/<span class="hljs-symbol">:tenant/</span><span class="hljs-symbol">:namespace/replication</span> %}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().setNamespaceReplicationClusters(namespace, clusters);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-replication-cluster"></a><a href="#get-replication-cluster" 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 [...]
-<p>It gives a list of replication clusters for a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-1"></a><a href="#cli-1" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-clusters</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">cl1/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs"><span class="hljs-attribute">cl2</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-2"></a><a href="#rest-2" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>replication
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaceReplicationClusters(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-backlog-quota-policies"></a><a href="#set-backlog-quota-policies" 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 12H [...]
-<p>Backlog quota helps broker to restrict bandwidth/storage of a namespace once it reach certain threshold limit . Admin can set this limit and one of the following action after the limit is reached.</p>
-<ol>
-<li><p>producer_request_hold: broker will hold and not persist produce request payload</p></li>
-<li><p>producer_exception: broker will disconnects with client by giving exception</p></li>
-<li><p>consumer_backlog_eviction: broker will start discarding backlog messages</p></li>
-</ol>
-<p>Backlog quota restriction can be taken care by defining restriction of backlog-quota-type: destination_storage</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-2"></a><a href="#cli-2" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-backlog-quota</span> <span class="hljs-built_in">--limit</span> <span class="hljs-string">10 </span><span class="hljs-built_in">--policy</span> <span class="hljs-string">producer_request_hold </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-3"></a><a href="#rest-3" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuota
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().setBacklogQuota(namespace, <span class="hljs-keyword">new</span> BacklogQuota(limit, policy))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-backlog-quota-policies"></a><a href="#get-backlog-quota-policies" 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 12H [...]
-<p>It shows a configured backlog quota for a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-3"></a><a href="#cli-3" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-backlog-quotas</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"destination_storage"</span>: {
-    <span class="hljs-attr">"limit"</span>: <span class="hljs-number">10</span>,
-    <span class="hljs-attr">"policy"</span>: <span class="hljs-string">"producer_request_hold"</span>
-  }
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-4"></a><a href="#rest-4" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuotaMap
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-8"></a><a href="#java-8" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getBacklogQuotaMap(namespace);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="remove-backlog-quota-policies"></a><a href="#remove-backlog-quota-policies" 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  [...]
-<p>It removes backlog quota policies for a given namespace</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-4"></a><a href="#cli-4" 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"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces remove-backlog-quota <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-5"></a><a href="#rest-5" 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. [...]
-<pre><code class="hljs"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuota
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-9"></a><a href="#java-9" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().removeBacklogQuota(namespace, backlogQuotaType)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-persistence-policies"></a><a href="#set-persistence-policies" 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-. [...]
-<p>Persistence policies allow to configure persistency-level for all topic messages under a given namespace.</p>
-<ul>
-<li><p>Bookkeeper-ack-quorum: Number of acks (guaranteed copies) to wait for each entry, default: 0</p></li>
-<li><p>Bookkeeper-ensemble: Number of bookies to use for a topic, default: 0</p></li>
-<li><p>Bookkeeper-write-quorum: How many writes to make of each entry, default: 0</p></li>
-<li><p>Ml-mark-delete-max-rate: Throttling rate of mark-delete operation (0 means no throttle), default: 0.0</p></li>
-</ul>
-<h6><a class="anchor" aria-hidden="true" id="cli-5"></a><a href="#cli-5" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-persistence</span> <span class="hljs-built_in">--bookkeeper-ack-quorum</span> 2 <span class="hljs-built_in">--bookkeeper-ensemble</span> 3 <span class="hljs-built_in">--bookkeeper-write-quorum</span> 2 <span class="hljs-built_in">--ml-mark-delete-max-rate</span> 0 <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-6"></a><a href="#rest-6" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>persistence
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-10"></a><a href="#java-10" 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 languages- java">admin.namespaces().setPersistence(namespace,<span class="hljs-keyword">new</span> PersistencePolicies(bookkeeperEnsemble, bookkeeperWriteQuorum,bookkeeperAckQuorum,managedLedgerMaxMarkDeleteRate))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-persistence-policies"></a><a href="#get-persistence-policies" 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-. [...]
-<p>It shows configured persistence policies of a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-6"></a><a href="#cli-6" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-persistence</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"bookkeeperEnsemble"</span>: <span class="hljs-number">3</span>,
-  <span class="hljs-attr">"bookkeeperWriteQuorum"</span>: <span class="hljs-number">2</span>,
-  <span class="hljs-attr">"bookkeeperAckQuorum"</span>: <span class="hljs-number">2</span>,
-  <span class="hljs-attr">"managedLedgerMaxMarkDeleteRate"</span>: <span class="hljs-number">0</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-7"></a><a href="#rest-7" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>persistence
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-11"></a><a href="#java-11" 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 languages- java">admin.namespaces().getPersistence(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="unload-namespace-bundle"></a><a href="#unload-namespace-bundle" 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 [...]
-<p>Namespace bundle is a virtual group of topics which belong to same namespace. If broker gets overloaded with number of bundles then this command can help to unload heavy bundle from that broker, so it can be served by some other less loaded broker. Namespace bundle is defined with it’s start and end range such as 0x00000000 and 0xffffffff.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-7"></a><a href="#cli-7" 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"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces unload --bundle 0x00000000_0xffffffff <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-8"></a><a href="#rest-8" 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. [...]
-<pre><code class="hljs">PUT <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/u</span>nload
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-12"></a><a href="#java-12" 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 languages- java">admin.namespaces().unloadNamespaceBundle(namespace, bundle)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-message-ttl"></a><a href="#set-message-ttl" 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  [...]
-<p>It configures message’s time to live (in seconds) duration.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-8"></a><a href="#cli-8" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-message-ttl</span> <span class="hljs-built_in">--messageTTL</span> <span class="hljs-string">100 </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-9"></a><a href="#rest-9" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/m</span>essageTTL
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-13"></a><a href="#java-13" 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 languages- java">admin.namespaces().setNamespaceMessageTTL(namespace, messageTTL)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-message-ttl"></a><a href="#get-message-ttl" 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  [...]
-<p>It gives a message ttl of configured namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-9"></a><a href="#cli-9" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-message-ttl</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs"><span class="hljs-number">100</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-10"></a><a href="#rest-10" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/m</span>essageTTL
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-14"></a><a href="#java-14" 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 languages- java">admin.namespaces().getNamespaceReplicationClusters(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="split-bundle"></a><a href="#split-bundle" 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. [...]
-<p>Each namespace bundle can contain multiple topics and each bundle can be served by only one broker. If bundle gets heavy with multiple live topics in it then it creates load on that broker and in order to resolve this issue, admin can split bundle using this command.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-10"></a><a href="#cli-10" 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. [...]
-<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces split-bundle --bundle 0x00000000_0xffffffff <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-11"></a><a href="#rest-11" 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"><span class="xml">PUT /admin/v2/namespaces/</span><span class="hljs-template-variable">{tenant}</span><span class="xml">/</span><span class="hljs-template-variable">{namespace}</span><span class="xml">/</span><span class="hljs-template-variable">{bundle}</span><span class="xml">/split
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-15"></a><a href="#java-15" 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 languages- java">admin.namespaces().splitNamespaceBundle(namespace, bundle)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="clear-backlog"></a><a href="#clear-backlog" 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 [...]
-<p>It clears all message backlog for all the topics those belong to specific namespace. You can also clear backlog for a specific subscription as well.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-11"></a><a href="#cli-11" 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. [...]
-<pre><code class="hljs">$ pulsar-admin namespaces clear-<span class="hljs-keyword">backlog </span>--<span class="hljs-keyword">sub </span>my-<span class="hljs-keyword">subscription </span>test-tenant/ns1
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-12"></a><a href="#rest-12" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>clearBacklog
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-16"></a><a href="#java-16" 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 languages- java">admin.namespaces().clearNamespaceBacklogForSubscription(namespace, subscription)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="clear-bundle-backlog"></a><a href="#clear-bundle-backlog" 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>It clears all message backlog for all the topics those belong to specific NamespaceBundle. You can also clear backlog for a specific subscription as well.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-12"></a><a href="#cli-12" 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. [...]
-<pre><code class="hljs">$ pulsar-admin namespaces clear-<span class="hljs-keyword">backlog </span> --<span class="hljs-keyword">bundle </span><span class="hljs-number">0x00000000</span>_<span class="hljs-number">0xffffffff</span>  --<span class="hljs-keyword">sub </span>my-<span class="hljs-keyword">subscription </span>test-tenant/ns1
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-13"></a><a href="#rest-13" 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"><span class="xml">POST /admin/v2/namespaces/</span><span class="hljs-template-variable">{tenant}</span><span class="xml">/</span><span class="hljs-template-variable">{namespace}</span><span class="xml">/</span><span class="hljs-template-variable">{bundle}</span><span class="xml">/clearBacklog
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-17"></a><a href="#java-17" 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 languages- java">admin.namespaces().clearNamespaceBundleBacklogForSubscription(namespace, bundle, subscription)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-retention"></a><a href="#set-retention" 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 [...]
-<p>Each namespace contains multiple topics and each topic’s retention size (storage size) should not exceed to a specific threshold or it should be stored till certain time duration. This command helps to configure retention size and time of topics in a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-13"></a><a href="#cli-13" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-built_in">set-retention</span> <span class="hljs-built_in">--size</span> <span class="hljs-string">10 </span><span class="hljs-built_in">--time</span> <span class="hljs-string">100 </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-14"></a><a href="#rest-14" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>retention
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-18"></a><a href="#java-18" 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 languages- java">admin.namespaces().setRetention(namespace, <span class="hljs-keyword">new</span> RetentionPolicies(retentionTimeInMin, retentionSizeInMB))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-retention"></a><a href="#get-retention" 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 [...]
-<p>It shows retention information of a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-14"></a><a href="#cli-14" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-retention</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"retentionTimeInMinutes"</span>: <span class="hljs-number">10</span>,
-  <span class="hljs-attr">"retentionSizeInMB"</span>: <span class="hljs-number">100</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-15"></a><a href="#rest-15" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>retention
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-19"></a><a href="#java-19" 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 languages- java">admin.namespaces().getRetention(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-dispatch-throttling"></a><a href="#set-dispatch-throttling" 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 [...]
-<p>It sets message dispatch rate for all the topics under a given namespace.
-Dispatch rate can be restricted by number of message per X seconds (<code>msg-dispatch-rate</code>) or by number of message-bytes per X second (<code>byte-dispatch-rate</code>).
-dispatch rate is in second and it can be configured with <code>dispatch-rate-period</code>. Default value of <code>msg-dispatch-rate</code> and <code>byte-dispatch-rate</code> is -1 which
-disables the throttling.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-15"></a><a href="#cli-15" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-dispatch-rate</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1 </span>\
-  <span class="hljs-built_in">--msg-dispatch-rate</span> <span class="hljs-string">1000 </span>\
-  <span class="hljs-built_in">--byte-dispatch-rate</span> <span class="hljs-string">1048576 </span>\
-  <span class="hljs-built_in">--dispatch-rate-period</span> 1
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-16"></a><a href="#rest-16" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>dispatchRate
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-20"></a><a href="#java-20" 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 languages- java">admin.namespaces().setDispatchRate(namespace, <span class="hljs-number">1000</span>, <span class="hljs-number">1048576</span>, <span class="hljs-number">1</span>)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-configured-message-rate"></a><a href="#get-configured-message-rate" 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 1 [...]
-<p>It shows configured message-rate for the namespace (topics under this namespace can dispatch this many messages per second)</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-16"></a><a href="#cli-16" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-dispatch-rate</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"dispatchThrottlingRatePerTopicInMsg"</span> : <span class="hljs-number">1000</span>,
-  <span class="hljs-attr">"dispatchThrottlingRatePerTopicInByte"</span> : <span class="hljs-number">1048576</span>,
-  <span class="hljs-attr">"ratePeriodInSecond"</span> : <span class="hljs-number">1</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-17"></a><a href="#rest-17" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>dispatchRate
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-21"></a><a href="#java-21" 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 languages- java">admin.namespaces().getDispatchRate(namespace)
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="namespace-isolation"></a><a href="#namespace-isolation" 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.2 [...]
-<p>Coming soon.</p>
-<h3><a class="anchor" aria-hidden="true" id="unloading-from-a-broker"></a><a href="#unloading-from-a-broker" 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 [...]
-<p>You can unload a namespace, or a <a href="/staging/docs/reference-terminology#namespace-bundle">namespace bundle</a>, from the Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> that is currently responsible for it.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-unload"><code>unload</code></a> subcommand of the <a href="/staging/docs/pulsar-admin#namespaces"><code>namespaces</code></a> command.</p>
-<h5><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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 languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces unload my-tenant/my-ns</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
-<h4><a class="anchor" aria-hidden="true" id="java-22"></a><a href="#java-22" 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- [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-brokers">← Managing Brokers</a><a class="docs-next button" href="/staging/docs/admin-api-permissions">Managing permissions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-policies">Get policies</a></li><li><a href=" [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-namespaces";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-namespaces/index.html b/content/staging/docs/admin-api-namespaces/index.html
index 759313b..c17f282 100644
--- a/content/staging/docs/admin-api-namespaces/index.html
+++ b/content/staging/docs/admin-api-namespaces/index.html
@@ -1,421 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Namespaces · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar [namespaces](/staging/docs/reference-terminology#namespace) are logical groupings of [topics](/staging/docs/reference-terminology#topic)."/><meta name="docsearch:language" content="en"/><met [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-namespaces.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Namespaces</h1></header><article><div><span><p>Pulsar <a href="/staging/docs/reference-terminology#namespace">namespaces</a> are logical groupi [...]
-<p>Namespaces can be managed via:</p>
-<ul>
-<li>The <a href="/staging/docs/pulsar-admin#clusters"><code>namespaces</code></a> command of the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/namespaces</code> endpoint of the admin <a href="/staging/docs/reference-rest-api">REST API</a></li>
-<li>The <code>namespaces</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/staging/docs/client-libraries-java">Java API</a></li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="namespaces-resources"></a><a href="#namespaces-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can create new namespaces under a given <a href="/staging/docs/reference-terminology#tenant">tenant</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-create"><code>create</code></a> subcommand and specify the namespace by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces create <span class="hljs-built_in">test</span>-tenant/<span class="hljs-built_in">test</span>-namespace</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint PUT /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">admin.namespaces().createNamespace(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-policies"></a><a href="#get-policies" 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. [...]
-<p>You can fetch the current policies associated with a namespace at any time.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-policies"><code>policies</code></a> subcommand and specify the namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces policies <span class="hljs-built_in">test</span>-tenant/<span class="hljs-built_in">test</span>-namespace</span>
-{
-  "auth_policies": {
-    "namespace_auth": {},
-    "destination_auth": {}
-  },
-  "replication_clusters": [],
-  "bundles_activated": true,
-  "bundles": {
-    "boundaries": [
-      "0x00000000",
-      "0xffffffff"
-    ],
-    "numBundles": 1
-  },
-  "backlog_quota_map": {},
-  "persistence": null,
-  "latency_stats_sample_rate": {},
-  "message_ttl_in_seconds": 0,
-  "retention_policies": null,
-  "deleted": false
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getPolicies(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list-namespaces-within-a-tenant"></a><a href="#list-namespaces-within-a-tenant" 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 [...]
-<p>You can list all namespaces within a given Pulsar <a href="/staging/docs/reference-terminology#tenant">tenant</a>.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-list"><code>list</code></a> subcommand and specify the tenant:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces list <span class="hljs-built_in">test</span>-tenant</span>
-test-tenant/ns1
-test-tenant/ns2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaces(tenant);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaces(tenant);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can delete existing namespaces from a tenant.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-delete"><code>delete</code></a> subcommand and specify the namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces delete <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest"></a><a href="#rest" 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>{% endpoint DELETE /admin/v2/namespaces/:tenant/:namespace %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/namespaces/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().deleteNamespace(namespace);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-replication-cluster"></a><a href="#set-replication-cluster" 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 [...]
-<p>It sets replication clusters for a namespace, so Pulsar can internally replicate publish message from one colo to another colo.</p>
-<h6><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-2.09V6.2 [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-clusters</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1 </span>\
-  <span class="hljs-built_in">--clusters</span> <span class="hljs-string">cl1
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-1"></a><a href="#rest-1" 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. [...]
-<pre><code class="hljs">{% endpoint POST /admin/v2/namespaces/<span class="hljs-symbol">:tenant/</span><span class="hljs-symbol">:namespace/replication</span> %}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().setNamespaceReplicationClusters(namespace, clusters);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-replication-cluster"></a><a href="#get-replication-cluster" 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 [...]
-<p>It gives a list of replication clusters for a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-1"></a><a href="#cli-1" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-clusters</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">cl1/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs"><span class="hljs-attribute">cl2</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-2"></a><a href="#rest-2" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>replication
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getNamespaceReplicationClusters(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-backlog-quota-policies"></a><a href="#set-backlog-quota-policies" 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 12H [...]
-<p>Backlog quota helps broker to restrict bandwidth/storage of a namespace once it reach certain threshold limit . Admin can set this limit and one of the following action after the limit is reached.</p>
-<ol>
-<li><p>producer_request_hold: broker will hold and not persist produce request payload</p></li>
-<li><p>producer_exception: broker will disconnects with client by giving exception</p></li>
-<li><p>consumer_backlog_eviction: broker will start discarding backlog messages</p></li>
-</ol>
-<p>Backlog quota restriction can be taken care by defining restriction of backlog-quota-type: destination_storage</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-2"></a><a href="#cli-2" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-backlog-quota</span> <span class="hljs-built_in">--limit</span> <span class="hljs-string">10 </span><span class="hljs-built_in">--policy</span> <span class="hljs-string">producer_request_hold </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-3"></a><a href="#rest-3" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuota
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().setBacklogQuota(namespace, <span class="hljs-keyword">new</span> BacklogQuota(limit, policy))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-backlog-quota-policies"></a><a href="#get-backlog-quota-policies" 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 12H [...]
-<p>It shows a configured backlog quota for a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-3"></a><a href="#cli-3" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-backlog-quotas</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"destination_storage"</span>: {
-    <span class="hljs-attr">"limit"</span>: <span class="hljs-number">10</span>,
-    <span class="hljs-attr">"policy"</span>: <span class="hljs-string">"producer_request_hold"</span>
-  }
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-4"></a><a href="#rest-4" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuotaMap
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-8"></a><a href="#java-8" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().getBacklogQuotaMap(namespace);
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="remove-backlog-quota-policies"></a><a href="#remove-backlog-quota-policies" 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  [...]
-<p>It removes backlog quota policies for a given namespace</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-4"></a><a href="#cli-4" 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"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces remove-backlog-quota <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-5"></a><a href="#rest-5" 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. [...]
-<pre><code class="hljs"><span class="hljs-keyword">DELETE</span> <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>backlogQuota
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-9"></a><a href="#java-9" 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. [...]
-<pre><code class="hljs css languages- java">admin.namespaces().removeBacklogQuota(namespace, backlogQuotaType)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-persistence-policies"></a><a href="#set-persistence-policies" 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-. [...]
-<p>Persistence policies allow to configure persistency-level for all topic messages under a given namespace.</p>
-<ul>
-<li><p>Bookkeeper-ack-quorum: Number of acks (guaranteed copies) to wait for each entry, default: 0</p></li>
-<li><p>Bookkeeper-ensemble: Number of bookies to use for a topic, default: 0</p></li>
-<li><p>Bookkeeper-write-quorum: How many writes to make of each entry, default: 0</p></li>
-<li><p>Ml-mark-delete-max-rate: Throttling rate of mark-delete operation (0 means no throttle), default: 0.0</p></li>
-</ul>
-<h6><a class="anchor" aria-hidden="true" id="cli-5"></a><a href="#cli-5" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-persistence</span> <span class="hljs-built_in">--bookkeeper-ack-quorum</span> 2 <span class="hljs-built_in">--bookkeeper-ensemble</span> 3 <span class="hljs-built_in">--bookkeeper-write-quorum</span> 2 <span class="hljs-built_in">--ml-mark-delete-max-rate</span> 0 <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-6"></a><a href="#rest-6" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>persistence
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-10"></a><a href="#java-10" 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 languages- java">admin.namespaces().setPersistence(namespace,<span class="hljs-keyword">new</span> PersistencePolicies(bookkeeperEnsemble, bookkeeperWriteQuorum,bookkeeperAckQuorum,managedLedgerMaxMarkDeleteRate))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-persistence-policies"></a><a href="#get-persistence-policies" 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-. [...]
-<p>It shows configured persistence policies of a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-6"></a><a href="#cli-6" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-persistence</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"bookkeeperEnsemble"</span>: <span class="hljs-number">3</span>,
-  <span class="hljs-attr">"bookkeeperWriteQuorum"</span>: <span class="hljs-number">2</span>,
-  <span class="hljs-attr">"bookkeeperAckQuorum"</span>: <span class="hljs-number">2</span>,
-  <span class="hljs-attr">"managedLedgerMaxMarkDeleteRate"</span>: <span class="hljs-number">0</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-7"></a><a href="#rest-7" 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. [...]
-<pre><code class="hljs">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>persistence
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-11"></a><a href="#java-11" 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 languages- java">admin.namespaces().getPersistence(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="unload-namespace-bundle"></a><a href="#unload-namespace-bundle" 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 [...]
-<p>Namespace bundle is a virtual group of topics which belong to same namespace. If broker gets overloaded with number of bundles then this command can help to unload heavy bundle from that broker, so it can be served by some other less loaded broker. Namespace bundle is defined with it’s start and end range such as 0x00000000 and 0xffffffff.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-7"></a><a href="#cli-7" 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"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces unload --bundle 0x00000000_0xffffffff <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-8"></a><a href="#rest-8" 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. [...]
-<pre><code class="hljs">PUT <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/u</span>nload
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-12"></a><a href="#java-12" 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 languages- java">admin.namespaces().unloadNamespaceBundle(namespace, bundle)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-message-ttl"></a><a href="#set-message-ttl" 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  [...]
-<p>It configures message’s time to live (in seconds) duration.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-8"></a><a href="#cli-8" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-message-ttl</span> <span class="hljs-built_in">--messageTTL</span> <span class="hljs-string">100 </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-9"></a><a href="#rest-9" 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. [...]
-<pre><code class="hljs">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/m</span>essageTTL
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-13"></a><a href="#java-13" 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 languages- java">admin.namespaces().setNamespaceMessageTTL(namespace, messageTTL)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-message-ttl"></a><a href="#get-message-ttl" 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  [...]
-<p>It gives a message ttl of configured namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-9"></a><a href="#cli-9" 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">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-message-ttl</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs"><span class="hljs-number">100</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-10"></a><a href="#rest-10" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/m</span>essageTTL
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-14"></a><a href="#java-14" 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 languages- java">admin.namespaces().getNamespaceReplicationClusters(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="split-bundle"></a><a href="#split-bundle" 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. [...]
-<p>Each namespace bundle can contain multiple topics and each bundle can be served by only one broker. If bundle gets heavy with multiple live topics in it then it creates load on that broker and in order to resolve this issue, admin can split bundle using this command.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-10"></a><a href="#cli-10" 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. [...]
-<pre><code class="hljs"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces split-bundle --bundle 0x00000000_0xffffffff <span class="hljs-built_in">test</span>-tenant/ns1</span>
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-11"></a><a href="#rest-11" 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"><span class="xml">PUT /admin/v2/namespaces/</span><span class="hljs-template-variable">{tenant}</span><span class="xml">/</span><span class="hljs-template-variable">{namespace}</span><span class="xml">/</span><span class="hljs-template-variable">{bundle}</span><span class="xml">/split
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-15"></a><a href="#java-15" 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 languages- java">admin.namespaces().splitNamespaceBundle(namespace, bundle)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="clear-backlog"></a><a href="#clear-backlog" 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 [...]
-<p>It clears all message backlog for all the topics those belong to specific namespace. You can also clear backlog for a specific subscription as well.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-11"></a><a href="#cli-11" 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. [...]
-<pre><code class="hljs">$ pulsar-admin namespaces clear-<span class="hljs-keyword">backlog </span>--<span class="hljs-keyword">sub </span>my-<span class="hljs-keyword">subscription </span>test-tenant/ns1
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-12"></a><a href="#rest-12" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>clearBacklog
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-16"></a><a href="#java-16" 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 languages- java">admin.namespaces().clearNamespaceBacklogForSubscription(namespace, subscription)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="clear-bundle-backlog"></a><a href="#clear-bundle-backlog" 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>It clears all message backlog for all the topics those belong to specific NamespaceBundle. You can also clear backlog for a specific subscription as well.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-12"></a><a href="#cli-12" 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. [...]
-<pre><code class="hljs">$ pulsar-admin namespaces clear-<span class="hljs-keyword">backlog </span> --<span class="hljs-keyword">bundle </span><span class="hljs-number">0x00000000</span>_<span class="hljs-number">0xffffffff</span>  --<span class="hljs-keyword">sub </span>my-<span class="hljs-keyword">subscription </span>test-tenant/ns1
-</code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-13"></a><a href="#rest-13" 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"><span class="xml">POST /admin/v2/namespaces/</span><span class="hljs-template-variable">{tenant}</span><span class="xml">/</span><span class="hljs-template-variable">{namespace}</span><span class="xml">/</span><span class="hljs-template-variable">{bundle}</span><span class="xml">/clearBacklog
-</span></code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-17"></a><a href="#java-17" 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 languages- java">admin.namespaces().clearNamespaceBundleBacklogForSubscription(namespace, bundle, subscription)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-retention"></a><a href="#set-retention" 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 [...]
-<p>Each namespace contains multiple topics and each topic’s retention size (storage size) should not exceed to a specific threshold or it should be stored till certain time duration. This command helps to configure retention size and time of topics in a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-13"></a><a href="#cli-13" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-built_in">set-retention</span> <span class="hljs-built_in">--size</span> <span class="hljs-string">10 </span><span class="hljs-built_in">--time</span> <span class="hljs-string">100 </span><span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs">N/<span class="hljs-keyword">A</span>
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-14"></a><a href="#rest-14" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>retention
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-18"></a><a href="#java-18" 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 languages- java">admin.namespaces().setRetention(namespace, <span class="hljs-keyword">new</span> RetentionPolicies(retentionTimeInMin, retentionSizeInMB))
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-retention"></a><a href="#get-retention" 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 [...]
-<p>It shows retention information of a given namespace.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-14"></a><a href="#cli-14" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-retention</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"retentionTimeInMinutes"</span>: <span class="hljs-number">10</span>,
-  <span class="hljs-attr">"retentionSizeInMB"</span>: <span class="hljs-number">100</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-15"></a><a href="#rest-15" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>retention
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-19"></a><a href="#java-19" 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 languages- java">admin.namespaces().getRetention(namespace)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="set-dispatch-throttling"></a><a href="#set-dispatch-throttling" 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 [...]
-<p>It sets message dispatch rate for all the topics under a given namespace.
-Dispatch rate can be restricted by number of message per X seconds (<code>msg-dispatch-rate</code>) or by number of message-bytes per X second (<code>byte-dispatch-rate</code>).
-dispatch rate is in second and it can be configured with <code>dispatch-rate-period</code>. Default value of <code>msg-dispatch-rate</code> and <code>byte-dispatch-rate</code> is -1 which
-disables the throttling.</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-15"></a><a href="#cli-15" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">set-dispatch-rate</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1 </span>\
-  <span class="hljs-built_in">--msg-dispatch-rate</span> <span class="hljs-string">1000 </span>\
-  <span class="hljs-built_in">--byte-dispatch-rate</span> <span class="hljs-string">1048576 </span>\
-  <span class="hljs-built_in">--dispatch-rate-period</span> 1
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-16"></a><a href="#rest-16" 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">POST <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>dispatchRate
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-20"></a><a href="#java-20" 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 languages- java">admin.namespaces().setDispatchRate(namespace, <span class="hljs-number">1000</span>, <span class="hljs-number">1048576</span>, <span class="hljs-number">1</span>)
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="get-configured-message-rate"></a><a href="#get-configured-message-rate" 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 1 [...]
-<p>It shows configured message-rate for the namespace (topics under this namespace can dispatch this many messages per second)</p>
-<h6><a class="anchor" aria-hidden="true" id="cli-16"></a><a href="#cli-16" 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. [...]
-<pre><code class="hljs">$ <span class="hljs-string">pulsar-admin </span><span class="hljs-string">namespaces </span><span class="hljs-built_in">get-dispatch-rate</span> <span class="hljs-string">test-tenant/</span><span class="hljs-string">ns1
-</span></code></pre>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"dispatchThrottlingRatePerTopicInMsg"</span> : <span class="hljs-number">1000</span>,
-  <span class="hljs-attr">"dispatchThrottlingRatePerTopicInByte"</span> : <span class="hljs-number">1048576</span>,
-  <span class="hljs-attr">"ratePeriodInSecond"</span> : <span class="hljs-number">1</span>
-}
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="rest-17"></a><a href="#rest-17" 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">GET <span class="hljs-regexp">/admin/</span>v2<span class="hljs-regexp">/namespaces/</span>{tenant}<span class="hljs-regexp">/{namespace}/</span>dispatchRate
-</code></pre>
-<h6><a class="anchor" aria-hidden="true" id="java-21"></a><a href="#java-21" 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 languages- java">admin.namespaces().getDispatchRate(namespace)
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="namespace-isolation"></a><a href="#namespace-isolation" 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.2 [...]
-<p>Coming soon.</p>
-<h3><a class="anchor" aria-hidden="true" id="unloading-from-a-broker"></a><a href="#unloading-from-a-broker" 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 [...]
-<p>You can unload a namespace, or a <a href="/staging/docs/reference-terminology#namespace-bundle">namespace bundle</a>, from the Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> that is currently responsible for it.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Use the <a href="/staging/docs/pulsar-admin#namespaces-unload"><code>unload</code></a> subcommand of the <a href="/staging/docs/pulsar-admin#namespaces"><code>namespaces</code></a> command.</p>
-<h5><a class="anchor" aria-hidden="true" id="example"></a><a href="#example" 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 languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces unload my-tenant/my-ns</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
-<h4><a class="anchor" aria-hidden="true" id="java-22"></a><a href="#java-22" 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- [...]
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-brokers">← Managing Brokers</a><a class="docs-next button" href="/staging/docs/admin-api-permissions">Managing permissions →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#namespaces-resources">Namespaces resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="#get-policies">Get policies</a></li><li><a href=" [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-namespaces";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-non-persistent-topics.html b/content/staging/docs/admin-api-non-persistent-topics.html
index 110d7f6..6a900d2 100644
--- a/content/staging/docs/admin-api-non-persistent-topics.html
+++ b/content/staging/docs/admin-api-non-persistent-topics.html
@@ -1,244 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing non-persistent topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Non-persistent can be used in applications that only want to consume real time published messages and"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="M [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want to consume real  [...]
-do not need persistent guarantee that can also reduce message-publish latency by removing overhead of
-persisting messages.</p>
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="non-persistent-topics-resources"></a><a href="#non-persistent-topics-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="get-stats"></a><a href="#get-stats" 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>It shows current statistics of a given non-partitioned topic.</p>
-<ul>
-<li><p><strong>msgRateIn</strong>: The sum of all local and replication publishers' publish rates in messages per second</p></li>
-<li><p><strong>msgThroughputIn</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>msgRateOut</strong>: The sum of all local and replication consumers' dispatch rates in messages per second</p></li>
-<li><p><strong>msgThroughputOut</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>averageMsgSize</strong>: The average size in bytes of messages published within the last interval</p></li>
-<li><p><strong>publishers</strong>: The list of all local publishers into the topic. There can be zero or thousands</p></li>
-<li><p><strong>averageMsgSize</strong>: Average message size in bytes from this publisher within the last interval</p></li>
-<li><p><strong>producerId</strong>: Internal identifier for this producer on this topic</p></li>
-<li><p><strong>producerName</strong>: Internal identifier for this producer, generated by the client library</p></li>
-<li><p><strong>address</strong>: IP address and source port for the connection of this producer</p></li>
-<li><p><strong>connectedSince</strong>: Timestamp this producer was created or last reconnected</p></li>
-<li><p><strong>subscriptions</strong>: The list of all local subscriptions to the topic</p></li>
-<li><p><strong>my-subscription</strong>: The name of this subscription (client defined)</p></li>
-<li><p><strong>type</strong>: This subscription type</p></li>
-<li><p><strong>consumers</strong>: The list of connected consumers for this subscription</p></li>
-<li><p><strong>consumerName</strong>: Internal identifier for this consumer, generated by the client library</p></li>
-<li><p><strong>availablePermits</strong>: The number of messages this consumer has space for in the client library's listen queue. A value of 0 means the client library's queue is full and receive() isn't being called. A nonzero value means this consumer is ready to be dispatched messages.</p></li>
-<li><p><strong>replication</strong>: This section gives the stats for cross-colo replication of this topic</p></li>
-<li><p><strong>connected</strong>: Whether the outbound replicator is connected</p></li>
-<li><p><strong>inboundConnection</strong>: The IP and port of the broker in the remote cluster's publisher connection to this broker</p></li>
-<li><p><strong>inboundConnectedSince</strong>: The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</p></li>
-<li><p><strong>msgDropRate</strong>: for publisher: publish: broker only allows configured number of in flight per connection, and drops all other published messages above the threshold. Broker also drops messages for subscriptions in case of unavailable limit and connection is not writable.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">0.0</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">0.0</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-       <span class="hljs-attr">"consumers"</span> : [ {
-        <span class="hljs-attr">"msgRateOut"</span> : <span class="hljs-number">20343.506296021893</span>,
-        <span class="hljs-attr">"msgThroughputOut"</span> : <span class="hljs-number">2.0979855364233278E7</span>,
-        <span class="hljs-attr">"msgRateRedeliver"</span> : <span class="hljs-number">0.0</span>,
-        <span class="hljs-attr">"consumerName"</span> : <span class="hljs-string">"fe3c0"</span>,
-        <span class="hljs-attr">"availablePermits"</span> : <span class="hljs-number">950</span>,
-        <span class="hljs-attr">"unackedMessages"</span> : <span class="hljs-number">0</span>,
-        <span class="hljs-attr">"blockedConsumerOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
-        <span class="hljs-attr">"address"</span> : <span class="hljs-string">"/10.73.210.249:60578"</span>,
-        <span class="hljs-attr">"connectedSince"</span> : <span class="hljs-string">"2017-07-26 15:13:48.026-0700"</span>,
-        <span class="hljs-attr">"clientVersion"</span> : <span class="hljs-string">"1.19-incubating-SNAPSHOT"</span>
-      } ],
-      <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">432.2390921571593</span>
-
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>Topic stats can be fetched using <a href="/staging/docs/pulsar-admin#stats"><code>stats</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent stats \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/stats %}</p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-internal-stats"></a><a href="#get-internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Topic internal-stats can be fetched using <a href="/staging/docs/pulsar-admin#stats-internal"><code>stats-internal</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent stats-internal \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-
-{
-  "entriesAddedCounter" : 48834,
-  "numberOfEntries" : 0,
-  "totalSize" : 0,
-  "cursors" : {
-    "s1" : {
-      "waitingReadOp" : false,
-      "pendingReadOps" : 0,
-      "messagesConsumedCounter" : 0,
-      "cursorLedger" : 0,
-      "cursorLedgerLastEntry" : 0
-    }
-  }
-}
-
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/internalStats %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getInternalStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" 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-. [...]
-<p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin non-persistent create-partitioned-topic \</span>
-  non-persistent://my-tenant/my-namespace/my-topic \
-  --partitions 4
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/non-persistent/:tenant/:namespace/:destination/partitions %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-<span class="hljs-keyword">int</span> numPartitions = <span class="hljs-number">4</span>;
-admin.nonPersistentTopics().createPartitionedTopic(topicName, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-metadata"></a><a href="#get-metadata" 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. [...]
-<p>Partitioned topics have metadata associated with them that you can fetch as a JSON object. The following metadata fields are currently available:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Field</th><th style="text-align:left">Meaning</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>partitions</code></td><td style="text-align:left">The number of partitions into which the topic is divided</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent get-partitioned-topic-metadata \</span>
-  non-persistent://my-tenant/my-namespace/my-topic
-{
-  "partitions": 4
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/partitions %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getPartitionedTopicMetadata(topicName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unload-topic"></a><a href="#unload-topic" 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. [...]
-<p>It unloads a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Topic can be unloaded using <a href="/staging/docs/pulsar-admin#unload"><code>unload</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent unload \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/non-persistent/:tenant/:namespace/:destination/unload %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/non-persistent/:tenant/:namespace/:destination/unload">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenantmy-namespace/my-topic"</span>;
-admin.nonPersistentTopics().unload(destination);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-permissions">← Managing permissions</a><a class="docs-next button" href="/staging/docs/admin-api-partitioned-topics">Managing partitioned topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-headings"><li><a href="#get-stats">Get stats</a></li><li><a href= [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-non-persistent-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-non-persistent-topics/index.html b/content/staging/docs/admin-api-non-persistent-topics/index.html
index 110d7f6..6a900d2 100644
--- a/content/staging/docs/admin-api-non-persistent-topics/index.html
+++ b/content/staging/docs/admin-api-non-persistent-topics/index.html
@@ -1,244 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing non-persistent topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Non-persistent can be used in applications that only want to consume real time published messages and"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="M [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-non-persistent-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing non-persistent topics</h1></header><article><div><span><p>Non-persistent can be used in applications that only want to consume real  [...]
-do not need persistent guarantee that can also reduce message-publish latency by removing overhead of
-persisting messages.</p>
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="non-persistent-topics-resources"></a><a href="#non-persistent-topics-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="get-stats"></a><a href="#get-stats" 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>It shows current statistics of a given non-partitioned topic.</p>
-<ul>
-<li><p><strong>msgRateIn</strong>: The sum of all local and replication publishers' publish rates in messages per second</p></li>
-<li><p><strong>msgThroughputIn</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>msgRateOut</strong>: The sum of all local and replication consumers' dispatch rates in messages per second</p></li>
-<li><p><strong>msgThroughputOut</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>averageMsgSize</strong>: The average size in bytes of messages published within the last interval</p></li>
-<li><p><strong>publishers</strong>: The list of all local publishers into the topic. There can be zero or thousands</p></li>
-<li><p><strong>averageMsgSize</strong>: Average message size in bytes from this publisher within the last interval</p></li>
-<li><p><strong>producerId</strong>: Internal identifier for this producer on this topic</p></li>
-<li><p><strong>producerName</strong>: Internal identifier for this producer, generated by the client library</p></li>
-<li><p><strong>address</strong>: IP address and source port for the connection of this producer</p></li>
-<li><p><strong>connectedSince</strong>: Timestamp this producer was created or last reconnected</p></li>
-<li><p><strong>subscriptions</strong>: The list of all local subscriptions to the topic</p></li>
-<li><p><strong>my-subscription</strong>: The name of this subscription (client defined)</p></li>
-<li><p><strong>type</strong>: This subscription type</p></li>
-<li><p><strong>consumers</strong>: The list of connected consumers for this subscription</p></li>
-<li><p><strong>consumerName</strong>: Internal identifier for this consumer, generated by the client library</p></li>
-<li><p><strong>availablePermits</strong>: The number of messages this consumer has space for in the client library's listen queue. A value of 0 means the client library's queue is full and receive() isn't being called. A nonzero value means this consumer is ready to be dispatched messages.</p></li>
-<li><p><strong>replication</strong>: This section gives the stats for cross-colo replication of this topic</p></li>
-<li><p><strong>connected</strong>: Whether the outbound replicator is connected</p></li>
-<li><p><strong>inboundConnection</strong>: The IP and port of the broker in the remote cluster's publisher connection to this broker</p></li>
-<li><p><strong>inboundConnectedSince</strong>: The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</p></li>
-<li><p><strong>msgDropRate</strong>: for publisher: publish: broker only allows configured number of in flight per connection, and drops all other published messages above the threshold. Broker also drops messages for subscriptions in case of unavailable limit and connection is not writable.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">0.0</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">0.0</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-       <span class="hljs-attr">"consumers"</span> : [ {
-        <span class="hljs-attr">"msgRateOut"</span> : <span class="hljs-number">20343.506296021893</span>,
-        <span class="hljs-attr">"msgThroughputOut"</span> : <span class="hljs-number">2.0979855364233278E7</span>,
-        <span class="hljs-attr">"msgRateRedeliver"</span> : <span class="hljs-number">0.0</span>,
-        <span class="hljs-attr">"consumerName"</span> : <span class="hljs-string">"fe3c0"</span>,
-        <span class="hljs-attr">"availablePermits"</span> : <span class="hljs-number">950</span>,
-        <span class="hljs-attr">"unackedMessages"</span> : <span class="hljs-number">0</span>,
-        <span class="hljs-attr">"blockedConsumerOnUnackedMsgs"</span> : <span class="hljs-literal">false</span>,
-        <span class="hljs-attr">"address"</span> : <span class="hljs-string">"/10.73.210.249:60578"</span>,
-        <span class="hljs-attr">"connectedSince"</span> : <span class="hljs-string">"2017-07-26 15:13:48.026-0700"</span>,
-        <span class="hljs-attr">"clientVersion"</span> : <span class="hljs-string">"1.19-incubating-SNAPSHOT"</span>
-      } ],
-      <span class="hljs-attr">"msgDropRate"</span> : <span class="hljs-number">432.2390921571593</span>
-
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>Topic stats can be fetched using <a href="/staging/docs/pulsar-admin#stats"><code>stats</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent stats \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/stats %}</p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-internal-stats"></a><a href="#get-internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Topic internal-stats can be fetched using <a href="/staging/docs/pulsar-admin#stats-internal"><code>stats-internal</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent stats-internal \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-
-{
-  "entriesAddedCounter" : 48834,
-  "numberOfEntries" : 0,
-  "totalSize" : 0,
-  "cursors" : {
-    "s1" : {
-      "waitingReadOp" : false,
-      "pendingReadOps" : 0,
-      "messagesConsumedCounter" : 0,
-      "cursorLedger" : 0,
-      "cursorLedgerLastEntry" : 0
-    }
-  }
-}
-
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/internalStats %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getInternalStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="create-partitioned-topic"></a><a href="#create-partitioned-topic" 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-. [...]
-<p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin non-persistent create-partitioned-topic \</span>
-  non-persistent://my-tenant/my-namespace/my-topic \
-  --partitions 4
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/non-persistent/:tenant/:namespace/:destination/partitions %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-<span class="hljs-keyword">int</span> numPartitions = <span class="hljs-number">4</span>;
-admin.nonPersistentTopics().createPartitionedTopic(topicName, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-metadata"></a><a href="#get-metadata" 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. [...]
-<p>Partitioned topics have metadata associated with them that you can fetch as a JSON object. The following metadata fields are currently available:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Field</th><th style="text-align:left">Meaning</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>partitions</code></td><td style="text-align:left">The number of partitions into which the topic is divided</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent get-partitioned-topic-metadata \</span>
-  non-persistent://my-tenant/my-namespace/my-topic
-{
-  "partitions": 4
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/non-persistent/:tenant/:namespace/:destination/partitions %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"non-persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.nonPersistentTopics().getPartitionedTopicMetadata(topicName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unload-topic"></a><a href="#unload-topic" 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. [...]
-<p>It unloads a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Topic can be unloaded using <a href="/staging/docs/pulsar-admin#unload"><code>unload</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin non-persistent unload \</span>
-  non-persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/non-persistent/:tenant/:namespace/:destination/unload %}</p>
-<p><a href="/staging/docs/reference-rest-api#/admin/non-persistent/:tenant/:namespace/:destination/unload">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"non-persistent://my-tenantmy-namespace/my-topic"</span>;
-admin.nonPersistentTopics().unload(destination);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-permissions">← Managing permissions</a><a class="docs-next button" href="/staging/docs/admin-api-partitioned-topics">Managing partitioned topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#non-persistent-topics-resources">Non-persistent topics resources</a><ul class="toc-headings"><li><a href="#get-stats">Get stats</a></li><li><a href= [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-non-persistent-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-overview.html b/content/staging/docs/admin-api-overview.html
index d50b4a3..ae078ea 100644
--- a/content/staging/docs/admin-api-overview.html
+++ b/content/staging/docs/admin-api-overview.html
@@ -1,134 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar admin interface · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Pulsar admin interface enables you to manage all of the important entities in a Pulsar [instance](/staging/docs/reference-terminology#instance), such as [tenants](/staging/docs/reference [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important entities in a Pulsar  [...]
-<p>You can currently interact with the admin interface via:</p>
-<ul>
-<li>Making HTTP calls against the admin <a href="/staging/docs/reference-rest-api">REST API</a> provided by Pulsar <a href="/staging/docs/reference-terminology#broker">brokers</a>. For some restful apis, they might be redirected to topic owner brokers for serving
-with <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307"><code>307 Temporary Redirect</code></a>, hence the HTTP callers should handle <code>307 Temporary Redirect</code>. If you are using <code>curl</code>, you should specify <code>-L</code>
-to handle redirections.</li>
-<li>The <code>pulsar-admin</code> CLI tool, which is available in the <code>bin</code> folder of your <a href="/staging/docs/standalone">Pulsar installation</a>:</li>
-</ul>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin</span>
-</code></pre>
-<p>Full documentation for this tool can be found in the <a href="/staging/docs/pulsar-admin">Pulsar command-line tools</a> doc.</p>
-<ul>
-<li>A Java client interface.</li>
-</ul>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="the-rest-api-is-the-admin-interface"></a><a href="#the-rest-api-is-the-admin-interface" 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 [...]
-<p>Under the hood, both the <code>pulsar-admin</code> CLI tool and the Java client both use the REST API. If you’d like to implement your own admin interface client, you should use the REST API as well. Full documentation can be found here.</p>
-</blockquote>
-<p>In this document, examples from each of the three available interfaces will be shown.</p>
-<h2><a class="anchor" aria-hidden="true" id="admin-setup"></a><a href="#admin-setup" 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 [...]
-<p>Each of Pulsar's three admin interfaces---the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> CLI tool, the <a href="/api/admin">Java admin API</a>, and the <a href="/staging/docs/reference-rest-api">REST API</a>---requires some special setup if you have <a href="/staging/docs/security-overview#authentication-providers">authentication</a> enabled in your Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>If you have <a href="/staging/docs/security-overview#authentication-providers">authentication</a> enabled, you will need to provide an auth configuration to use the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool. By default, the configuration for the <code>pulsar-admin</code> tool is found in the <a href="/staging/docs/reference-configuration#client"><code>conf/client.conf</code></a> file. Here are the available parameters:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Description</th><th>Default</th></tr>
-</thead>
-<tbody>
-<tr><td>webServiceUrl</td><td>The web URL for the cluster.</td><td><a href="http://localhost:8080/">http://localhost:8080/</a></td></tr>
-<tr><td>brokerServiceUrl</td><td>The Pulsar protocol URL for the cluster.</td><td><a href="pulsar://localhost:6650/">pulsar://localhost:6650/</a></td></tr>
-<tr><td>authPlugin</td><td>The authentication plugin.</td><td></td></tr>
-<tr><td>authParams</td><td>The authentication parameters for the cluster, as a comma-separated string.</td><td></td></tr>
-<tr><td>useTls</td><td>Whether or not TLS authentication will be enforced in the cluster.</td><td>false</td></tr>
-<tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client.</td><td>false</td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file.</td><td></td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>You can find documentation for the REST API exposed by Pulsar <a href="/staging/docs/reference-terminology#broker">brokers</a> in <a href="/staging/docs/reference-rest-api">this reference document</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-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- [...]
-<p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
-. Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css languages- java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
-<span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
-String authParams = <span class="hljs-string">"param1=value1"</span>;
-<span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
-<span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
-String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/client-libraries-websocket">← Pulsar&#x27;s WebSocket API</a><a class="docs-next button" href="/staging/docs/admin-api-clusters">Managing Clusters →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a href=" [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-overview";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-overview/index.html b/content/staging/docs/admin-api-overview/index.html
index d50b4a3..ae078ea 100644
--- a/content/staging/docs/admin-api-overview/index.html
+++ b/content/staging/docs/admin-api-overview/index.html
@@ -1,134 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar admin interface · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Pulsar admin interface enables you to manage all of the important entities in a Pulsar [instance](/staging/docs/reference-terminology#instance), such as [tenants](/staging/docs/reference [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-overview.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar admin interface</h1></header><article><div><span><p>The Pulsar admin interface enables you to manage all of the important entities in a Pulsar  [...]
-<p>You can currently interact with the admin interface via:</p>
-<ul>
-<li>Making HTTP calls against the admin <a href="/staging/docs/reference-rest-api">REST API</a> provided by Pulsar <a href="/staging/docs/reference-terminology#broker">brokers</a>. For some restful apis, they might be redirected to topic owner brokers for serving
-with <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307"><code>307 Temporary Redirect</code></a>, hence the HTTP callers should handle <code>307 Temporary Redirect</code>. If you are using <code>curl</code>, you should specify <code>-L</code>
-to handle redirections.</li>
-<li>The <code>pulsar-admin</code> CLI tool, which is available in the <code>bin</code> folder of your <a href="/staging/docs/standalone">Pulsar installation</a>:</li>
-</ul>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin</span>
-</code></pre>
-<p>Full documentation for this tool can be found in the <a href="/staging/docs/pulsar-admin">Pulsar command-line tools</a> doc.</p>
-<ul>
-<li>A Java client interface.</li>
-</ul>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="the-rest-api-is-the-admin-interface"></a><a href="#the-rest-api-is-the-admin-interface" 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 [...]
-<p>Under the hood, both the <code>pulsar-admin</code> CLI tool and the Java client both use the REST API. If you’d like to implement your own admin interface client, you should use the REST API as well. Full documentation can be found here.</p>
-</blockquote>
-<p>In this document, examples from each of the three available interfaces will be shown.</p>
-<h2><a class="anchor" aria-hidden="true" id="admin-setup"></a><a href="#admin-setup" 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 [...]
-<p>Each of Pulsar's three admin interfaces---the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> CLI tool, the <a href="/api/admin">Java admin API</a>, and the <a href="/staging/docs/reference-rest-api">REST API</a>---requires some special setup if you have <a href="/staging/docs/security-overview#authentication-providers">authentication</a> enabled in your Pulsar <a href="/staging/docs/reference-terminology#instance">instance</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>If you have <a href="/staging/docs/security-overview#authentication-providers">authentication</a> enabled, you will need to provide an auth configuration to use the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool. By default, the configuration for the <code>pulsar-admin</code> tool is found in the <a href="/staging/docs/reference-configuration#client"><code>conf/client.conf</code></a> file. Here are the available parameters:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Description</th><th>Default</th></tr>
-</thead>
-<tbody>
-<tr><td>webServiceUrl</td><td>The web URL for the cluster.</td><td><a href="http://localhost:8080/">http://localhost:8080/</a></td></tr>
-<tr><td>brokerServiceUrl</td><td>The Pulsar protocol URL for the cluster.</td><td><a href="pulsar://localhost:6650/">pulsar://localhost:6650/</a></td></tr>
-<tr><td>authPlugin</td><td>The authentication plugin.</td><td></td></tr>
-<tr><td>authParams</td><td>The authentication parameters for the cluster, as a comma-separated string.</td><td></td></tr>
-<tr><td>useTls</td><td>Whether or not TLS authentication will be enforced in the cluster.</td><td>false</td></tr>
-<tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client.</td><td>false</td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file.</td><td></td></tr>
-</tbody>
-</table>
-<h3><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>You can find documentation for the REST API exposed by Pulsar <a href="/staging/docs/reference-terminology#broker">brokers</a> in <a href="/staging/docs/reference-rest-api">this reference document</a>.</p>
-<h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-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- [...]
-<p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/staging/docs/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
-. Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css languages- java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
-<span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
-String authParams = <span class="hljs-string">"param1=value1"</span>;
-<span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
-<span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
-String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/client-libraries-websocket">← Pulsar&#x27;s WebSocket API</a><a class="docs-next button" href="/staging/docs/admin-api-clusters">Managing Clusters →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a href="#pulsar-admin">pulsar-admin</a></li><li><a href="#rest-api">REST API</a></li><li><a href=" [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-overview";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-partitioned-topics.html b/content/staging/docs/admin-api-partitioned-topics.html
index 814e0bd..af308dc 100644
--- a/content/staging/docs/admin-api-partitioned-topics.html
+++ b/content/staging/docs/admin-api-partitioned-topics.html
@@ -1,338 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing partitioned topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use Pulsar&#x27;s [admin API](/staging/docs/admin-api-overview) to create and manage partitioned topics."/><meta name="docsearch:language" content="en"/><meta property="og:title" co [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/staging/docs/admin-api-overview">admin API</a> to [...]
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-resources"></a><a href="#partitioned-topics-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you
-need to provide a name for the topic as well as the desired number of partitions.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can create partitioned topics using the <a href="/staging/docs/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>
-command and specifying the topic name as an argument and the number of partitions using the <code>-p</code> or <code>--partitions</code> flag.
-Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic \
-  --partitions 4
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<pre><code class="hljs css languages- http">PUT /admin/v2/persistent/:tenant/:namespace/:topic/partitions
-</code></pre>
-<p><a href="reference-admin-rest-api.md#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"persistent://my-property/my-namespace/my-topic"</span>;
-<span class="hljs-keyword">int</span> numPartitions = <span class="hljs-number">4</span>;
-admin.persistentTopics().createPartitionedTopic(topicName, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-metadata"></a><a href="#get-metadata" 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. [...]
-<p>Partitioned topics have metadata associated with them that you can fetch as a JSON object.
-The following metadata fields are currently available:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Field</th><th style="text-align:left">Meaning</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>partitions</code></td><td style="text-align:left">The number of partitions into which the topic is divided</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>You can see the number of partitions in a partitioned topic using the
-<a href="/staging/docs/pulsar-admin#get-partitioned-topic-metadata"><code>get-partitioned-topic-metadata</code></a>
-subcommand. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics get-partitioned-topic-metadata \</span>
-  persistent://my-property/my-namespace/my-topic
-{
-  "partitions": 4
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/partitions %}
-</code></pre>
-<p><a href="reference-admin-rest-api.md#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getPartitionedTopicMetadata(topicName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update"></a><a href="#update" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can update the number of partitions on an existing partitioned topic
-<em>if</em> the topic is non-global. To update, the new number of partitions must be greater
-than the existing number.</p>
-<p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers can’t see newly created partitions and
-it requires to recreate them at application so, newly created producers and consumers can connect
-to newly added partitions as well. Therefore, it can violate partition ordering at producers until
-all producers are restarted at application.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Partitioned topics can be updated using the
-<a href="/staging/docs/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic \
-  --partitions 8
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" 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 [...]
-<pre><code class="hljs css languages- http">POST /admin/v2/persistent/:tenant/:cluster/:namespace/:destination/partitions
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().updatePartitionedTopic(persistentTopic, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Partitioned topics can be deleted using the
-<a href="/staging/docs/pulsar-admin#delete-partitioned-topic"><code>delete-partitioned-topic</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics delete-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
-<pre><code class="hljs css languages- http">DELETE /admin/v2/persistent/:topic/:namespace/:destination/partitions
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().delete(persistentTopic);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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>It provides a list of persistent topics existing under a given namespace.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics list tenant/namespace</span>
-persistent://tenant/namespace/topic1
-persistent://tenant/namespace/topic2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getList(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="stats"></a><a href="#stats" 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>It shows current statistics of a given partitioned topic. Here's an example payload:</p>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-      <span class="hljs-attr">"consumers"</span>: []
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<p>The following stats are available:</p>
-<table>
-<thead>
-<tr><th>Stat</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>msgRateIn</td><td>The sum of all local and replication publishers’ publish rates in messages per second</td></tr>
-<tr><td>msgThroughputIn</td><td>Same as msgRateIn but in bytes per second instead of messages per second</td></tr>
-<tr><td>msgRateOut</td><td>The sum of all local and replication consumers’ dispatch rates in messages per second</td></tr>
-<tr><td>msgThroughputOut</td><td>Same as msgRateOut but in bytes per second instead of messages per second</td></tr>
-<tr><td>averageMsgSize</td><td>Average message size, in bytes, from this publisher within the last interval</td></tr>
-<tr><td>storageSize</td><td>The sum of the ledgers’ storage size for this topic</td></tr>
-<tr><td>publishers</td><td>The list of all local publishers into the topic. There can be anywhere from zero to thousands.</td></tr>
-<tr><td>producerId</td><td>Internal identifier for this producer on this topic</td></tr>
-<tr><td>producerName</td><td>Internal identifier for this producer, generated by the client library</td></tr>
-<tr><td>address</td><td>IP address and source port for the connection of this producer</td></tr>
-<tr><td>connectedSince</td><td>Timestamp this producer was created or last reconnected</td></tr>
-<tr><td>subscriptions</td><td>The list of all local subscriptions to the topic</td></tr>
-<tr><td>my-subscription</td><td>The name of this subscription (client defined)</td></tr>
-<tr><td>msgBacklog</td><td>The count of messages in backlog for this subscription</td></tr>
-<tr><td>type</td><td>This subscription type</td></tr>
-<tr><td>msgRateExpired</td><td>The rate at which messages were discarded instead of dispatched from this subscription due to TTL</td></tr>
-<tr><td>consumers</td><td>The list of connected consumers for this subscription</td></tr>
-<tr><td>consumerName</td><td>Internal identifier for this consumer, generated by the client library</td></tr>
-<tr><td>availablePermits</td><td>The number of messages this consumer has space for in the client library’s listen queue. A value of 0 means the client library’s queue is full and receive() isn’t being called. A nonzero value means this consumer is ready to be dispatched messages.</td></tr>
-<tr><td>replication</td><td>This section gives the stats for cross-colo replication of this topic</td></tr>
-<tr><td>replicationBacklog</td><td>The outbound replication backlog in messages</td></tr>
-<tr><td>connected</td><td>Whether the outbound replicator is connected</td></tr>
-<tr><td>replicationDelayInSeconds</td><td>How long the oldest message has been waiting to be sent through the connection, if connected is true</td></tr>
-<tr><td>inboundConnection</td><td>The IP and port of the broker in the remote cluster’s publisher connection to this broker</td></tr>
-<tr><td>inboundConnectedSince</td><td>The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>The stats for the partitioned topic and its connected producers and consumers can be fetched by using the
-<a href="/staging/docs/pulsar-admin#partitioned-stats"><code>partitioned-stats</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics partitioned-stats \</span>
-  persistent://test-tenant/namespace/topic \
-  --per-partition        
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-5"></a><a href="#rest-api-5" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/partitioned-stats
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitioned-stats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getStats(persistentTopic);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="internal-stats"></a><a href="#internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<table>
-<thead>
-<tr><th>Stat</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>entriesAddedCounter</td><td>Messages published since this broker loaded this topic</td></tr>
-<tr><td>numberOfEntries</td><td>Total number of messages being tracked</td></tr>
-<tr><td>totalSize</td><td>Total storage size in bytes of all messages</td></tr>
-<tr><td>currentLedgerEntries</td><td>Count of messages written to the ledger currently open for writing</td></tr>
-<tr><td>currentLedgerSize</td><td>Size in bytes of messages written to ledger currently open for writing</td></tr>
-<tr><td>lastLedgerCreatedTimestamp</td><td>Time when last ledger was created</td></tr>
-<tr><td>lastLedgerCreationFailureTimestamp</td><td>time when last ledger was failed</td></tr>
-<tr><td>waitingCursorsCount</td><td>How many cursors are caught up and waiting for a new message to be published</td></tr>
-<tr><td>pendingAddEntriesCount</td><td>How many messages have (asynchronous) write requests we are waiting on completion</td></tr>
-<tr><td>lastConfirmedEntry</td><td>The ledgerid:entryid of the last message successfully written. If the entryid is -1, then the ledger has been opened or is currently being opened but has no entries written yet.</td></tr>
-<tr><td>state</td><td>The state of the cursor ledger. Open means we have a cursor ledger for saving updates of the markDeletePosition.</td></tr>
-<tr><td>ledgers</td><td>The ordered list of all ledgers for this topic holding its messages</td></tr>
-<tr><td>cursors</td><td>The list of all cursors on this topic. There will be one for every subscription you saw in the topic stats.</td></tr>
-<tr><td>markDeletePosition</td><td>The ack position: the last message the subscriber acknowledged receiving</td></tr>
-<tr><td>readPosition</td><td>The latest position of subscriber for reading message</td></tr>
-<tr><td>waitingReadOp</td><td>This is true when the subscription has read the latest message published to the topic and is waiting on new messages to be published.</td></tr>
-<tr><td>pendingReadOps</td><td>The counter for how many outstanding read requests to the BookKeepers we have in progress</td></tr>
-<tr><td>messagesConsumedCounter</td><td>Number of messages this cursor has acked since this broker loaded this topic</td></tr>
-<tr><td>cursorLedger</td><td>The ledger being used to persistently store the current markDeletePosition</td></tr>
-<tr><td>cursorLedgerLastEntry</td><td>The last entryid used to persistently store the current markDeletePosition</td></tr>
-<tr><td>individuallyDeletedMessages</td><td>If Acks are being done out of order, shows the ranges of messages Acked between the markDeletePosition and the read-position</td></tr>
-<tr><td>lastLedgerSwitchTimestamp</td><td>The last time the cursor ledger was rolled over</td></tr>
-</tbody>
-</table>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"entriesAddedCounter"</span>: <span class="hljs-number">20449518</span>,
-  <span class="hljs-attr">"numberOfEntries"</span>: <span class="hljs-number">3233</span>,
-  <span class="hljs-attr">"totalSize"</span>: <span class="hljs-number">331482</span>,
-  <span class="hljs-attr">"currentLedgerEntries"</span>: <span class="hljs-number">3233</span>,
-  <span class="hljs-attr">"currentLedgerSize"</span>: <span class="hljs-number">331482</span>,
-  <span class="hljs-attr">"lastLedgerCreatedTimestamp"</span>: <span class="hljs-string">"2016-06-29 03:00:23.825"</span>,
-  <span class="hljs-attr">"lastLedgerCreationFailureTimestamp"</span>: <span class="hljs-literal">null</span>,
-  <span class="hljs-attr">"waitingCursorsCount"</span>: <span class="hljs-number">1</span>,
-  <span class="hljs-attr">"pendingAddEntriesCount"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"lastConfirmedEntry"</span>: <span class="hljs-string">"324711539:3232"</span>,
-  <span class="hljs-attr">"state"</span>: <span class="hljs-string">"LedgerOpened"</span>,
-  <span class="hljs-attr">"ledgers"</span>: [
-    {
-      <span class="hljs-attr">"ledgerId"</span>: <span class="hljs-number">324711539</span>,
-      <span class="hljs-attr">"entries"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"size"</span>: <span class="hljs-number">0</span>
-    }
-  ],
-  <span class="hljs-attr">"cursors"</span>: {
-    <span class="hljs-attr">"my-subscription"</span>: {
-      <span class="hljs-attr">"markDeletePosition"</span>: <span class="hljs-string">"324711539:3133"</span>,
-      <span class="hljs-attr">"readPosition"</span>: <span class="hljs-string">"324711539:3233"</span>,
-      <span class="hljs-attr">"waitingReadOp"</span>: <span class="hljs-literal">true</span>,
-      <span class="hljs-attr">"pendingReadOps"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"messagesConsumedCounter"</span>: <span class="hljs-number">20449501</span>,
-      <span class="hljs-attr">"cursorLedger"</span>: <span class="hljs-number">324702104</span>,
-      <span class="hljs-attr">"cursorLedgerLastEntry"</span>: <span class="hljs-number">21</span>,
-      <span class="hljs-attr">"individuallyDeletedMessages"</span>: <span class="hljs-string">"[(324711539:3134‥324711539:3136], (324711539:3137‥324711539:3140], ]"</span>,
-      <span class="hljs-attr">"lastLedgerSwitchTimestamp"</span>: <span class="hljs-string">"2016-06-29 01:30:19.313"</span>,
-      <span class="hljs-attr">"state"</span>: <span class="hljs-string">"Open"</span>
-    }
-  }
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-6"></a><a href="#pulsar-admin-6" 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- [...]
-<p>The internal stats for the partitioned topic can be fetched by using the
-<a href="/staging/docs/pulsar-admin#stats-internal"><code>stats-internal</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics stats-internal \</span>
-  persistent://test-tenant/namespace/topic
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-6"></a><a href="#rest-api-6" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/internalStats
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/internalStats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getInternalStats(persistentTopic);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-non-persistent-topics">← Managing non-persistent topics</a><a class="docs-next button" href="/staging/docs/adaptors-kafka">Pulsar adaptor for Apache Kafka →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="# [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-partitioned-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-partitioned-topics/index.html b/content/staging/docs/admin-api-partitioned-topics/index.html
index 814e0bd..af308dc 100644
--- a/content/staging/docs/admin-api-partitioned-topics/index.html
+++ b/content/staging/docs/admin-api-partitioned-topics/index.html
@@ -1,338 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing partitioned topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="You can use Pulsar&#x27;s [admin API](/staging/docs/admin-api-overview) to create and manage partitioned topics."/><meta name="docsearch:language" content="en"/><meta property="og:title" co [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-partitioned-topics.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing partitioned topics</h1></header><article><div><span><p>You can use Pulsar's <a href="/staging/docs/admin-api-overview">admin API</a> to [...]
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-resources"></a><a href="#partitioned-topics-resources" 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 [...]
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you
-need to provide a name for the topic as well as the desired number of partitions.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can create partitioned topics using the <a href="/staging/docs/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>
-command and specifying the topic name as an argument and the number of partitions using the <code>-p</code> or <code>--partitions</code> flag.
-Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic \
-  --partitions 4
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<pre><code class="hljs css languages- http">PUT /admin/v2/persistent/:tenant/:namespace/:topic/partitions
-</code></pre>
-<p><a href="reference-admin-rest-api.md#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"persistent://my-property/my-namespace/my-topic"</span>;
-<span class="hljs-keyword">int</span> numPartitions = <span class="hljs-number">4</span>;
-admin.persistentTopics().createPartitionedTopic(topicName, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-metadata"></a><a href="#get-metadata" 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. [...]
-<p>Partitioned topics have metadata associated with them that you can fetch as a JSON object.
-The following metadata fields are currently available:</p>
-<table>
-<thead>
-<tr><th style="text-align:left">Field</th><th style="text-align:left">Meaning</th></tr>
-</thead>
-<tbody>
-<tr><td style="text-align:left"><code>partitions</code></td><td style="text-align:left">The number of partitions into which the topic is divided</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>You can see the number of partitions in a partitioned topic using the
-<a href="/staging/docs/pulsar-admin#get-partitioned-topic-metadata"><code>get-partitioned-topic-metadata</code></a>
-subcommand. Here's an example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics get-partitioned-topic-metadata \</span>
-  persistent://my-property/my-namespace/my-topic
-{
-  "partitions": 4
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/partitions %}
-</code></pre>
-<p><a href="reference-admin-rest-api.md#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String topicName = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getPartitionedTopicMetadata(topicName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="update"></a><a href="#update" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
-<p>You can update the number of partitions on an existing partitioned topic
-<em>if</em> the topic is non-global. To update, the new number of partitions must be greater
-than the existing number.</p>
-<p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers can’t see newly created partitions and
-it requires to recreate them at application so, newly created producers and consumers can connect
-to newly added partitions as well. Therefore, it can violate partition ordering at producers until
-all producers are restarted at application.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>Partitioned topics can be updated using the
-<a href="/staging/docs/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic \
-  --partitions 8
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" 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 [...]
-<pre><code class="hljs css languages- http">POST /admin/v2/persistent/:tenant/:cluster/:namespace/:destination/partitions
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().updatePartitionedTopic(persistentTopic, numPartitions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Partitioned topics can be deleted using the
-<a href="/staging/docs/pulsar-admin#delete-partitioned-topic"><code>delete-partitioned-topic</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics delete-partitioned-topic \</span>
-  persistent://my-tenant/my-namespace/my-topic
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" 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 [...]
-<pre><code class="hljs css languages- http">DELETE /admin/v2/persistent/:topic/:namespace/:destination/partitions
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().delete(persistentTopic);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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>It provides a list of persistent topics existing under a given namespace.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics list tenant/namespace</span>
-persistent://tenant/namespace/topic1
-persistent://tenant/namespace/topic2
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getList(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="stats"></a><a href="#stats" 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>It shows current statistics of a given partitioned topic. Here's an example payload:</p>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-      <span class="hljs-attr">"consumers"</span>: []
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<p>The following stats are available:</p>
-<table>
-<thead>
-<tr><th>Stat</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>msgRateIn</td><td>The sum of all local and replication publishers’ publish rates in messages per second</td></tr>
-<tr><td>msgThroughputIn</td><td>Same as msgRateIn but in bytes per second instead of messages per second</td></tr>
-<tr><td>msgRateOut</td><td>The sum of all local and replication consumers’ dispatch rates in messages per second</td></tr>
-<tr><td>msgThroughputOut</td><td>Same as msgRateOut but in bytes per second instead of messages per second</td></tr>
-<tr><td>averageMsgSize</td><td>Average message size, in bytes, from this publisher within the last interval</td></tr>
-<tr><td>storageSize</td><td>The sum of the ledgers’ storage size for this topic</td></tr>
-<tr><td>publishers</td><td>The list of all local publishers into the topic. There can be anywhere from zero to thousands.</td></tr>
-<tr><td>producerId</td><td>Internal identifier for this producer on this topic</td></tr>
-<tr><td>producerName</td><td>Internal identifier for this producer, generated by the client library</td></tr>
-<tr><td>address</td><td>IP address and source port for the connection of this producer</td></tr>
-<tr><td>connectedSince</td><td>Timestamp this producer was created or last reconnected</td></tr>
-<tr><td>subscriptions</td><td>The list of all local subscriptions to the topic</td></tr>
-<tr><td>my-subscription</td><td>The name of this subscription (client defined)</td></tr>
-<tr><td>msgBacklog</td><td>The count of messages in backlog for this subscription</td></tr>
-<tr><td>type</td><td>This subscription type</td></tr>
-<tr><td>msgRateExpired</td><td>The rate at which messages were discarded instead of dispatched from this subscription due to TTL</td></tr>
-<tr><td>consumers</td><td>The list of connected consumers for this subscription</td></tr>
-<tr><td>consumerName</td><td>Internal identifier for this consumer, generated by the client library</td></tr>
-<tr><td>availablePermits</td><td>The number of messages this consumer has space for in the client library’s listen queue. A value of 0 means the client library’s queue is full and receive() isn’t being called. A nonzero value means this consumer is ready to be dispatched messages.</td></tr>
-<tr><td>replication</td><td>This section gives the stats for cross-colo replication of this topic</td></tr>
-<tr><td>replicationBacklog</td><td>The outbound replication backlog in messages</td></tr>
-<tr><td>connected</td><td>Whether the outbound replicator is connected</td></tr>
-<tr><td>replicationDelayInSeconds</td><td>How long the oldest message has been waiting to be sent through the connection, if connected is true</td></tr>
-<tr><td>inboundConnection</td><td>The IP and port of the broker in the remote cluster’s publisher connection to this broker</td></tr>
-<tr><td>inboundConnectedSince</td><td>The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</td></tr>
-</tbody>
-</table>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>The stats for the partitioned topic and its connected producers and consumers can be fetched by using the
-<a href="/staging/docs/pulsar-admin#partitioned-stats"><code>partitioned-stats</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics partitioned-stats \</span>
-  persistent://test-tenant/namespace/topic \
-  --per-partition        
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-5"></a><a href="#rest-api-5" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/partitioned-stats
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/partitioned-stats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getStats(persistentTopic);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="internal-stats"></a><a href="#internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<table>
-<thead>
-<tr><th>Stat</th><th>Description</th></tr>
-</thead>
-<tbody>
-<tr><td>entriesAddedCounter</td><td>Messages published since this broker loaded this topic</td></tr>
-<tr><td>numberOfEntries</td><td>Total number of messages being tracked</td></tr>
-<tr><td>totalSize</td><td>Total storage size in bytes of all messages</td></tr>
-<tr><td>currentLedgerEntries</td><td>Count of messages written to the ledger currently open for writing</td></tr>
-<tr><td>currentLedgerSize</td><td>Size in bytes of messages written to ledger currently open for writing</td></tr>
-<tr><td>lastLedgerCreatedTimestamp</td><td>Time when last ledger was created</td></tr>
-<tr><td>lastLedgerCreationFailureTimestamp</td><td>time when last ledger was failed</td></tr>
-<tr><td>waitingCursorsCount</td><td>How many cursors are caught up and waiting for a new message to be published</td></tr>
-<tr><td>pendingAddEntriesCount</td><td>How many messages have (asynchronous) write requests we are waiting on completion</td></tr>
-<tr><td>lastConfirmedEntry</td><td>The ledgerid:entryid of the last message successfully written. If the entryid is -1, then the ledger has been opened or is currently being opened but has no entries written yet.</td></tr>
-<tr><td>state</td><td>The state of the cursor ledger. Open means we have a cursor ledger for saving updates of the markDeletePosition.</td></tr>
-<tr><td>ledgers</td><td>The ordered list of all ledgers for this topic holding its messages</td></tr>
-<tr><td>cursors</td><td>The list of all cursors on this topic. There will be one for every subscription you saw in the topic stats.</td></tr>
-<tr><td>markDeletePosition</td><td>The ack position: the last message the subscriber acknowledged receiving</td></tr>
-<tr><td>readPosition</td><td>The latest position of subscriber for reading message</td></tr>
-<tr><td>waitingReadOp</td><td>This is true when the subscription has read the latest message published to the topic and is waiting on new messages to be published.</td></tr>
-<tr><td>pendingReadOps</td><td>The counter for how many outstanding read requests to the BookKeepers we have in progress</td></tr>
-<tr><td>messagesConsumedCounter</td><td>Number of messages this cursor has acked since this broker loaded this topic</td></tr>
-<tr><td>cursorLedger</td><td>The ledger being used to persistently store the current markDeletePosition</td></tr>
-<tr><td>cursorLedgerLastEntry</td><td>The last entryid used to persistently store the current markDeletePosition</td></tr>
-<tr><td>individuallyDeletedMessages</td><td>If Acks are being done out of order, shows the ranges of messages Acked between the markDeletePosition and the read-position</td></tr>
-<tr><td>lastLedgerSwitchTimestamp</td><td>The last time the cursor ledger was rolled over</td></tr>
-</tbody>
-</table>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"entriesAddedCounter"</span>: <span class="hljs-number">20449518</span>,
-  <span class="hljs-attr">"numberOfEntries"</span>: <span class="hljs-number">3233</span>,
-  <span class="hljs-attr">"totalSize"</span>: <span class="hljs-number">331482</span>,
-  <span class="hljs-attr">"currentLedgerEntries"</span>: <span class="hljs-number">3233</span>,
-  <span class="hljs-attr">"currentLedgerSize"</span>: <span class="hljs-number">331482</span>,
-  <span class="hljs-attr">"lastLedgerCreatedTimestamp"</span>: <span class="hljs-string">"2016-06-29 03:00:23.825"</span>,
-  <span class="hljs-attr">"lastLedgerCreationFailureTimestamp"</span>: <span class="hljs-literal">null</span>,
-  <span class="hljs-attr">"waitingCursorsCount"</span>: <span class="hljs-number">1</span>,
-  <span class="hljs-attr">"pendingAddEntriesCount"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"lastConfirmedEntry"</span>: <span class="hljs-string">"324711539:3232"</span>,
-  <span class="hljs-attr">"state"</span>: <span class="hljs-string">"LedgerOpened"</span>,
-  <span class="hljs-attr">"ledgers"</span>: [
-    {
-      <span class="hljs-attr">"ledgerId"</span>: <span class="hljs-number">324711539</span>,
-      <span class="hljs-attr">"entries"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"size"</span>: <span class="hljs-number">0</span>
-    }
-  ],
-  <span class="hljs-attr">"cursors"</span>: {
-    <span class="hljs-attr">"my-subscription"</span>: {
-      <span class="hljs-attr">"markDeletePosition"</span>: <span class="hljs-string">"324711539:3133"</span>,
-      <span class="hljs-attr">"readPosition"</span>: <span class="hljs-string">"324711539:3233"</span>,
-      <span class="hljs-attr">"waitingReadOp"</span>: <span class="hljs-literal">true</span>,
-      <span class="hljs-attr">"pendingReadOps"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"messagesConsumedCounter"</span>: <span class="hljs-number">20449501</span>,
-      <span class="hljs-attr">"cursorLedger"</span>: <span class="hljs-number">324702104</span>,
-      <span class="hljs-attr">"cursorLedgerLastEntry"</span>: <span class="hljs-number">21</span>,
-      <span class="hljs-attr">"individuallyDeletedMessages"</span>: <span class="hljs-string">"[(324711539:3134‥324711539:3136], (324711539:3137‥324711539:3140], ]"</span>,
-      <span class="hljs-attr">"lastLedgerSwitchTimestamp"</span>: <span class="hljs-string">"2016-06-29 01:30:19.313"</span>,
-      <span class="hljs-attr">"state"</span>: <span class="hljs-string">"Open"</span>
-    }
-  }
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-6"></a><a href="#pulsar-admin-6" 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- [...]
-<p>The internal stats for the partitioned topic can be fetched by using the
-<a href="/staging/docs/pulsar-admin#stats-internal"><code>stats-internal</code></a> command, specifying the topic by name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics stats-internal \</span>
-  persistent://test-tenant/namespace/topic
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-6"></a><a href="#rest-api-6" 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 [...]
-<pre><code class="hljs css languages- http">GET /admin/v2/persistent/:tenant/:namespace/:topic/internalStats
-</code></pre>
-<p><a href="/staging/docs/reference-rest-api#/admin/v2/persistent/:tenant/:namespace/:topic/internalStats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">admin.persistentTopics().getInternalStats(persistentTopic);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-non-persistent-topics">← Managing non-persistent topics</a><a class="docs-next button" href="/staging/docs/adaptors-kafka">Pulsar adaptor for Apache Kafka →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-resources">Partitioned topics resources</a><ul class="toc-headings"><li><a href="#create">Create</a></li><li><a href="# [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-partitioned-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-permissions.html b/content/staging/docs/admin-api-permissions.html
index 3cd3f06..77c0cd8 100644
--- a/content/staging/docs/admin-api-permissions.html
+++ b/content/staging/docs/admin-api-permissions.html
@@ -1,76 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing permissions · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Permissions resources"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Managing permissions · Apache Pulsar"/><meta property="og:type" content="website"/><meta [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="permissions-resources"></a><a href="#permissions-res [...]
-<p>{% include explanations/permissions.md %}</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-namespaces">← Managing Namespaces</a><a class="docs-next button" href="/staging/docs/admin-api-non-persistent-topics">Managing non-persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#permissions-resources">Permissions resources</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrigh [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-permissions";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-permissions/index.html b/content/staging/docs/admin-api-permissions/index.html
index 3cd3f06..77c0cd8 100644
--- a/content/staging/docs/admin-api-permissions/index.html
+++ b/content/staging/docs/admin-api-permissions/index.html
@@ -1,76 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing permissions · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Permissions resources"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Managing permissions · Apache Pulsar"/><meta property="og:type" content="website"/><meta [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-permissions.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing permissions</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="permissions-resources"></a><a href="#permissions-res [...]
-<p>{% include explanations/permissions.md %}</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-namespaces">← Managing Namespaces</a><a class="docs-next button" href="/staging/docs/admin-api-non-persistent-topics">Managing non-persistent topics →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#permissions-resources">Permissions resources</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyrigh [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-permissions";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-persistent-topics.html b/content/staging/docs/admin-api-persistent-topics.html
index 51363ca..4be2a6e 100644
--- a/content/staging/docs/admin-api-persistent-topics.html
+++ b/content/staging/docs/admin-api-persistent-topics.html
@@ -1,431 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing persistent topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Persistent helps to access topic which is a logical endpoint for publishing and consuming messages. Producers publish messages to the topic and consumers subscribe to the topic, to consume m [...]
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="persistent-topics-resources"></a><a href="#persistent-topics-resources" 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 1 [...]
-<h3><a class="anchor" aria-hidden="true" id="list-of-topics"></a><a href="#list-of-topics" 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- [...]
-<p>It provides a list of persistent topics exist under a given namespace.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>List of topics can be fetched using <a href="../../reference/CliTools#list"><code>list</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent list \</span>
-  my-tenant/my-namespace
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String namespace = <span class="hljs-string">"my-tenant/my-namespace"</span>;
-admin.persistentTopics().getList(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="grant-permission"></a><a href="#grant-permission" 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. [...]
-<p>It grants permissions on a client role to perform specific actions on a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Permission can be granted using <a href="../../reference/CliTools#grant-permission"><code>grant-permission</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent grant-permission \</span>
-  --actions produce,consume --role application1 \
-  persistent://test-tenant/ns1/tp1 \
-
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/namespaces/:tenant/:namespace/permissions/:role %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/permissions/:role">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String role = <span class="hljs-string">"test-role"</span>;
-Set&lt;AuthAction&gt; actions  = Sets.newHashSet(AuthAction.produce, AuthAction.consume);
-admin.persistentTopics().grantPermission(destination, role, actions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-permission"></a><a href="#get-permission" 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- [...]
-<p>Permission can be fetched using <a href="../../reference/CliTools#permissions"><code>permissions</code></a> command.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent permissions \</span>
-  persistent://test-tenant/ns1/tp1 \
-
-{
-    "application1": [
-        "consume",
-        "produce"
-    ]
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant/:namespace/permissions %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant:namespace/permissions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getPermissions(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="revoke-permission"></a><a href="#revoke-permission" 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- [...]
-<p>It revokes a permission which was granted on a client role.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Permission can be revoked using <a href="../../reference/CliTools#revoke-permission"><code>revoke-permission</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent revoke-permission \</span>
-  --role application1 \
-  persistent://test-tenant/ns1/tp1 \
-
-{
-  "application1": [
-    "consume",
-    "produce"
-  ]
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/namespaces/:tenant:namespace/permissions/:role %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/permissions/:role">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String role = <span class="hljs-string">"test-role"</span>;
-admin.persistentTopics().revokePermissions(destination, role);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete-topic"></a><a href="#delete-topic" 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. [...]
-<p>It deletes a topic. The topic cannot be deleted if there's any active subscription or producers connected to it.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Topic can be deleted using <a href="../../reference/CliTools#delete"><code>delete</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent delete \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/persistent/:tenant/:namespace/:destination %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().delete(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unload-topic"></a><a href="#unload-topic" 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. [...]
-<p>It unloads a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>Topic can be unloaded using <a href="../../reference/CliTools#unload"><code>unload</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent unload \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-5"></a><a href="#rest-api-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/persistent/:tenant/:namespace/:destination/unload %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/unload">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().unload(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-stats"></a><a href="#get-stats" 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>It shows current statistics of a given non-partitioned topic.</p>
-<ul>
-<li><p><strong>msgRateIn</strong>: The sum of all local and replication publishers' publish rates in messages per second</p></li>
-<li><p><strong>msgThroughputIn</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>msgRateOut</strong>: The sum of all local and replication consumers' dispatch rates in messages per second</p></li>
-<li><p><strong>msgThroughputOut</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>averageMsgSize</strong>: The average size in bytes of messages published within the last interval</p></li>
-<li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. See</p></li>
-<li><p><strong>publishers</strong>: The list of all local publishers into the topic. There can be zero or thousands</p></li>
-<li><p><strong>averageMsgSize</strong>: Average message size in bytes from this publisher within the last interval</p></li>
-<li><p><strong>producerId</strong>: Internal identifier for this producer on this topic</p></li>
-<li><p><strong>producerName</strong>: Internal identifier for this producer, generated by the client library</p></li>
-<li><p><strong>address</strong>: IP address and source port for the connection of this producer</p></li>
-<li><p><strong>connectedSince</strong>: Timestamp this producer was created or last reconnected</p></li>
-<li><p><strong>subscriptions</strong>: The list of all local subscriptions to the topic</p></li>
-<li><p><strong>my-subscription</strong>: The name of this subscription (client defined)</p></li>
-<li><p><strong>msgBacklog</strong>: The count of messages in backlog for this subscription</p></li>
-<li><p><strong>type</strong>: This subscription type</p></li>
-<li><p><strong>msgRateExpired</strong>: The rate at which messages were discarded instead of dispatched from this subscription due to TTL</p></li>
-<li><p><strong>consumers</strong>: The list of connected consumers for this subscription</p></li>
-<li><p><strong>consumerName</strong>: Internal identifier for this consumer, generated by the client library</p></li>
-<li><p><strong>availablePermits</strong>: The number of messages this consumer has space for in the client library's listen queue. A value of 0 means the client library's queue is full and receive() isn't being called. A nonzero value means this consumer is ready to be dispatched messages.</p></li>
-<li><p><strong>replication</strong>: This section gives the stats for cross-colo replication of this topic</p></li>
-<li><p><strong>replicationBacklog</strong>: The outbound replication backlog in messages</p></li>
-<li><p><strong>connected</strong>: Whether the outbound replicator is connected</p></li>
-<li><p><strong>replicationDelayInSeconds</strong>: How long the oldest message has been waiting to be sent through the connection, if connected is true</p></li>
-<li><p><strong>inboundConnection</strong>: The IP and port of the broker in the remote cluster's publisher connection to this broker</p></li>
-<li><p><strong>inboundConnectedSince</strong>: The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-      <span class="hljs-attr">"consumers"</span>: []
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-6"></a><a href="#pulsar-admin-6" 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- [...]
-<p>Topic stats can be fetched using <a href="../../reference/CliTools#stats"><code>stats</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent stats \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-6"></a><a href="#rest-api-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/stats %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant:namespace/:destination/stats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-internal-stats"></a><a href="#get-internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<ul>
-<li><p><strong>entriesAddedCounter</strong>: Messages published since this broker loaded this topic</p></li>
-<li><p><strong>numberOfEntries</strong>: Total number of messages being tracked</p></li>
-<li><p><strong>totalSize</strong>: Total storage size in bytes of all messages</p></li>
-<li><p><strong>currentLedgerEntries</strong>: Count of messages written to the ledger currently open for writing</p></li>
-<li><p><strong>currentLedgerSize</strong>: Size in bytes of messages written to ledger currently open for writing</p></li>
-<li><p><strong>lastLedgerCreatedTimestamp</strong>: time when last ledger was created</p></li>
-<li><p><strong>lastLedgerCreationFailureTimestamp:</strong> time when last ledger was failed</p></li>
-<li><p><strong>waitingCursorsCount</strong>: How many cursors are &quot;caught up&quot; and waiting for a new message to be published</p></li>
-<li><p><strong>pendingAddEntriesCount</strong>: How many messages have (asynchronous) write requests we are waiting on completion</p></li>
-<li><p><strong>lastConfirmedEntry</strong>: The ledgerid:entryid of the last message successfully written. If the entryid is -1, then the ledger has been opened or is currently being opened but has no entries written yet.</p></li>
-<li><p><strong>state</strong>: The state of this ledger for writing. LedgerOpened means we have a ledger open for saving published messages.</p></li>
-<li><p><strong>ledgers</strong>: The ordered list of all ledgers for this topic holding its messages</p></li>
-<li><p><strong>cursors</strong>: The list of all cursors on this topic. There will be one for every subscription you saw in the topic stats.</p></li>
-<li><p><strong>markDeletePosition</strong>: The ack position: the last message the subscriber acknowledged receiving</p></li>
-<li><p><strong>readPosition</strong>: The latest position of subscriber for reading message</p></li>
-<li><p><strong>waitingReadOp</strong>: This is true when the subscription has read the latest message published to the topic and is waiting on new messages to be published.</p></li>
-<li><p><strong>pendingReadOps</strong>: The counter for how many outstanding read requests to the BookKeepers we have in progress</p></li>
-<li><p><strong>messagesConsumedCounter</strong>: Number of messages this cursor has acked since this broker loaded this topic</p></li>
-<li><p><strong>cursorLedger</strong>: The ledger being used to persistently store the current markDeletePosition</p></li>
-<li><p><strong>cursorLedgerLastEntry</strong>: The last entryid used to persistently store the current markDeletePosition</p></li>
-<li><p><strong>individuallyDeletedMessages</strong>: If Acks are being done out of order, shows the ranges of messages Acked between the markDeletePosition and the read-position</p></li>
-<li><p><strong>lastLedgerSwitchTimestamp</strong>: The last time the cursor ledger was rolled over</p></li>
-<li><p><strong>state</strong>: The state of the cursor ledger: Open means we have a cursor ledger for saving updates of the markDeletePosition.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-    <span class="hljs-attr">"entriesAddedCounter"</span>: <span class="hljs-number">20449518</span>,
-    <span class="hljs-attr">"numberOfEntries"</span>: <span class="hljs-number">3233</span>,
-    <span class="hljs-attr">"totalSize"</span>: <span class="hljs-number">331482</span>,
-    <span class="hljs-attr">"currentLedgerEntries"</span>: <span class="hljs-number">3233</span>,
-    <span class="hljs-attr">"currentLedgerSize"</span>: <span class="hljs-number">331482</span>,
-    <span class="hljs-attr">"lastLedgerCreatedTimestamp"</span>: <span class="hljs-string">"2016-06-29 03:00:23.825"</span>,
-    <span class="hljs-attr">"lastLedgerCreationFailureTimestamp"</span>: <span class="hljs-literal">null</span>,
-    <span class="hljs-attr">"waitingCursorsCount"</span>: <span class="hljs-number">1</span>,
-    <span class="hljs-attr">"pendingAddEntriesCount"</span>: <span class="hljs-number">0</span>,
-    <span class="hljs-attr">"lastConfirmedEntry"</span>: <span class="hljs-string">"324711539:3232"</span>,
-    <span class="hljs-attr">"state"</span>: <span class="hljs-string">"LedgerOpened"</span>,
-    <span class="hljs-attr">"ledgers"</span>: [
-        {
-            <span class="hljs-attr">"ledgerId"</span>: <span class="hljs-number">324711539</span>,
-            <span class="hljs-attr">"entries"</span>: <span class="hljs-number">0</span>,
-            <span class="hljs-attr">"size"</span>: <span class="hljs-number">0</span>
-        }
-    ],
-    <span class="hljs-attr">"cursors"</span>: {
-        <span class="hljs-attr">"my-subscription"</span>: {
-            <span class="hljs-attr">"markDeletePosition"</span>: <span class="hljs-string">"324711539:3133"</span>,
-            <span class="hljs-attr">"readPosition"</span>: <span class="hljs-string">"324711539:3233"</span>,
-            <span class="hljs-attr">"waitingReadOp"</span>: <span class="hljs-literal">true</span>,
-            <span class="hljs-attr">"pendingReadOps"</span>: <span class="hljs-number">0</span>,
-            <span class="hljs-attr">"messagesConsumedCounter"</span>: <span class="hljs-number">20449501</span>,
-            <span class="hljs-attr">"cursorLedger"</span>: <span class="hljs-number">324702104</span>,
-            <span class="hljs-attr">"cursorLedgerLastEntry"</span>: <span class="hljs-number">21</span>,
-            <span class="hljs-attr">"individuallyDeletedMessages"</span>: <span class="hljs-string">"[(324711539:3134‥324711539:3136], (324711539:3137‥324711539:3140], ]"</span>,
-            <span class="hljs-attr">"lastLedgerSwitchTimestamp"</span>: <span class="hljs-string">"2016-06-29 01:30:19.313"</span>,
-            <span class="hljs-attr">"state"</span>: <span class="hljs-string">"Open"</span>
-        }
-    }
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-7"></a><a href="#pulsar-admin-7" 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- [...]
-<p>Topic internal-stats can be fetched using <a href="../../reference/CliTools#stats-internal"><code>stats-internal</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent stats-internal \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-7"></a><a href="#rest-api-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/internalStats %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/internalStats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getInternalStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="peek-messages"></a><a href="#peek-messages" 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 [...]
-<p>It peeks N messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-8"></a><a href="#pulsar-admin-8" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent peek-messages \</span>
-  --count 10 --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-
-Message ID: 315674752:0
-Properties:  {  "X-Pulsar-publish-time" : "2015-07-13 17:40:28.451"  }
-msg-payload
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-8"></a><a href="#rest-api-8" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/position/:messagePosition %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/position/:messagePosition">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-8"></a><a href="#java-8" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">int</span> numMessages = <span class="hljs-number">1</span>;
-admin.persistentTopics().peekMessages(destination, subName, numMessages);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="skip-messages"></a><a href="#skip-messages" 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 [...]
-<p>It skips N messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-9"></a><a href="#pulsar-admin-9" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent skip \</span>
-  --count 10 --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-9"></a><a href="#rest-api-9" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/skip/:numMessages %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/skip/:numMessages">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-9"></a><a href="#java-9" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">int</span> numMessages = <span class="hljs-number">1</span>;
-admin.persistentTopics().skipMessages(destination, subName, numMessages);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="skip-all-messages"></a><a href="#skip-all-messages" 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- [...]
-<p>It skips all old messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-10"></a><a href="#pulsar-admin-10" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent skip-all \</span>
-  --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-10"></a><a href="#rest-api-10" 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 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/skip_all %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/skip_all">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-10"></a><a href="#java-10" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-admin.persistentTopics().skipAllMessages(destination, subName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="reset-cursor"></a><a href="#reset-cursor" 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. [...]
-<p>It resets a subscription’s cursor position back to the position which was recorded X minutes before. It essentially calculates time and position of cursor at X minutes before and resets it at that position.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-11"></a><a href="#pulsar-admin-11" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent reset-cursor \</span>
-  --subscription my-subscription --time 10 \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-11"></a><a href="#rest-api-11" 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 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/resetcursor/:timestamp %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/resetcursor/:timestamp">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-11"></a><a href="#java-11" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">long</span> timestamp = <span class="hljs-number">2342343L</span>;
-admin.persistentTopics().skipAllMessages(destination, subName, timestamp);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="lookup-of-topic"></a><a href="#lookup-of-topic" 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  [...]
-<p>It locates broker url which is serving the given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-12"></a><a href="#pulsar-admin-12" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent lookup \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- "pulsar://broker1.org.com:4480"
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-12"></a><a href="#rest-api-12" 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 [...]
-<p>{% endpoint GET /lookup/v2/destination/persistent/:tenant:namespace/:destination %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-12"></a><a href="#java-12" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.lookup().lookupDestination(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-bundle"></a><a href="#get-bundle" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>It gives range of the bundle which contains given topic</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-13"></a><a href="#pulsar-admin-13" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent bundle-range \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- "0x00000000_0xffffffff"
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-13"></a><a href="#rest-api-13" 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 [...]
-<p>{% endpoint GET /lookup/v2/destination/:destination_domain/:tenant/:namespace/:destination/bundle %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-13"></a><a href="#java-13" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.lookup().getBundleRange(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-subscriptions"></a><a href="#get-subscriptions" 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- [...]
-<p>It shows all subscription names for a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-14"></a><a href="#pulsar-admin-14" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent subscriptions \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- my-subscription
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-14"></a><a href="#rest-api-14" 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 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/subscriptions %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscriptions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-14"></a><a href="#java-14" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getSubscriptions(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unsubscribe"></a><a href="#unsubscribe" 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 [...]
-<p>It can also help to unsubscribe a subscription which is no more processing further messages.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-15"></a><a href="#pulsar-admin-15" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent unsubscribe \</span>
-  --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-15"></a><a href="#rest-api-15" 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 [...]
-<p>{% endpoint POST /admin/v2/namespaces/:tenant/:namespace/unsubscribe/:subscription %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/unsubscribe/:subscription">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-15"></a><a href="#java-15" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subscriptionName = <span class="hljs-string">"my-subscription"</span>;
-admin.persistentTopics().deleteSubscription(destination, subscriptionName);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><li><a href="#list-of-topics">List of topics</a></li><li><a href="#grant-permission">Grant permission</a></li><li><a href="#get-permission">Get permission</a></li><li><a href="#revoke-permission">Revoke permission</a></li><li><a href="#delete-topic">Delete topic</a></li> [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-persistent-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-persistent-topics/index.html b/content/staging/docs/admin-api-persistent-topics/index.html
index 51363ca..4be2a6e 100644
--- a/content/staging/docs/admin-api-persistent-topics/index.html
+++ b/content/staging/docs/admin-api-persistent-topics/index.html
@@ -1,431 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing persistent topics · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Persistent helps to access topic which is a logical endpoint for publishing and consuming messages. Producers publish messages to the topic and consumers subscribe to the topic, to consume m [...]
-<p>In all of the instructions and commands below, the topic name structure is:</p>
-<pre><code class="hljs css languages- shell">persistent://tenant/namespace/topic
-</code></pre>
-<h2><a class="anchor" aria-hidden="true" id="persistent-topics-resources"></a><a href="#persistent-topics-resources" 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 1 [...]
-<h3><a class="anchor" aria-hidden="true" id="list-of-topics"></a><a href="#list-of-topics" 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- [...]
-<p>It provides a list of persistent topics exist under a given namespace.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>List of topics can be fetched using <a href="../../reference/CliTools#list"><code>list</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent list \</span>
-  my-tenant/my-namespace
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api"></a><a href="#rest-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace">More info</a></p>
-<h4><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-2.09V6 [...]
-<pre><code class="hljs css languages- java">String namespace = <span class="hljs-string">"my-tenant/my-namespace"</span>;
-admin.persistentTopics().getList(namespace);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="grant-permission"></a><a href="#grant-permission" 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. [...]
-<p>It grants permissions on a client role to perform specific actions on a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>Permission can be granted using <a href="../../reference/CliTools#grant-permission"><code>grant-permission</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent grant-permission \</span>
-  --actions produce,consume --role application1 \
-  persistent://test-tenant/ns1/tp1 \
-
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-1"></a><a href="#rest-api-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/namespaces/:tenant/:namespace/permissions/:role %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/permissions/:role">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String role = <span class="hljs-string">"test-role"</span>;
-Set&lt;AuthAction&gt; actions  = Sets.newHashSet(AuthAction.produce, AuthAction.consume);
-admin.persistentTopics().grantPermission(destination, role, actions);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-permission"></a><a href="#get-permission" 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- [...]
-<p>Permission can be fetched using <a href="../../reference/CliTools#permissions"><code>permissions</code></a> command.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent permissions \</span>
-  persistent://test-tenant/ns1/tp1 \
-
-{
-    "application1": [
-        "consume",
-        "produce"
-    ]
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-2"></a><a href="#rest-api-2" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/namespaces/:tenant/:namespace/permissions %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant:namespace/permissions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-2"></a><a href="#java-2" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getPermissions(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="revoke-permission"></a><a href="#revoke-permission" 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- [...]
-<p>It revokes a permission which was granted on a client role.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>Permission can be revoked using <a href="../../reference/CliTools#revoke-permission"><code>revoke-permission</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent revoke-permission \</span>
-  --role application1 \
-  persistent://test-tenant/ns1/tp1 \
-
-{
-  "application1": [
-    "consume",
-    "produce"
-  ]
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-3"></a><a href="#rest-api-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/namespaces/:tenant:namespace/permissions/:role %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/permissions/:role">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-3"></a><a href="#java-3" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String role = <span class="hljs-string">"test-role"</span>;
-admin.persistentTopics().revokePermissions(destination, role);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete-topic"></a><a href="#delete-topic" 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. [...]
-<p>It deletes a topic. The topic cannot be deleted if there's any active subscription or producers connected to it.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>Topic can be deleted using <a href="../../reference/CliTools#delete"><code>delete</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent delete \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-4"></a><a href="#rest-api-4" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint DELETE /admin/v2/persistent/:tenant/:namespace/:destination %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-4"></a><a href="#java-4" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().delete(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unload-topic"></a><a href="#unload-topic" 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. [...]
-<p>It unloads a topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-5"></a><a href="#pulsar-admin-5" 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- [...]
-<p>Topic can be unloaded using <a href="../../reference/CliTools#unload"><code>unload</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent unload \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-5"></a><a href="#rest-api-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint PUT /admin/v2/persistent/:tenant/:namespace/:destination/unload %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/unload">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().unload(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-stats"></a><a href="#get-stats" 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>It shows current statistics of a given non-partitioned topic.</p>
-<ul>
-<li><p><strong>msgRateIn</strong>: The sum of all local and replication publishers' publish rates in messages per second</p></li>
-<li><p><strong>msgThroughputIn</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>msgRateOut</strong>: The sum of all local and replication consumers' dispatch rates in messages per second</p></li>
-<li><p><strong>msgThroughputOut</strong>: Same as above, but in bytes per second instead of messages per second</p></li>
-<li><p><strong>averageMsgSize</strong>: The average size in bytes of messages published within the last interval</p></li>
-<li><p><strong>storageSize</strong>: The sum of the ledgers' storage size for this topic. See</p></li>
-<li><p><strong>publishers</strong>: The list of all local publishers into the topic. There can be zero or thousands</p></li>
-<li><p><strong>averageMsgSize</strong>: Average message size in bytes from this publisher within the last interval</p></li>
-<li><p><strong>producerId</strong>: Internal identifier for this producer on this topic</p></li>
-<li><p><strong>producerName</strong>: Internal identifier for this producer, generated by the client library</p></li>
-<li><p><strong>address</strong>: IP address and source port for the connection of this producer</p></li>
-<li><p><strong>connectedSince</strong>: Timestamp this producer was created or last reconnected</p></li>
-<li><p><strong>subscriptions</strong>: The list of all local subscriptions to the topic</p></li>
-<li><p><strong>my-subscription</strong>: The name of this subscription (client defined)</p></li>
-<li><p><strong>msgBacklog</strong>: The count of messages in backlog for this subscription</p></li>
-<li><p><strong>type</strong>: This subscription type</p></li>
-<li><p><strong>msgRateExpired</strong>: The rate at which messages were discarded instead of dispatched from this subscription due to TTL</p></li>
-<li><p><strong>consumers</strong>: The list of connected consumers for this subscription</p></li>
-<li><p><strong>consumerName</strong>: Internal identifier for this consumer, generated by the client library</p></li>
-<li><p><strong>availablePermits</strong>: The number of messages this consumer has space for in the client library's listen queue. A value of 0 means the client library's queue is full and receive() isn't being called. A nonzero value means this consumer is ready to be dispatched messages.</p></li>
-<li><p><strong>replication</strong>: This section gives the stats for cross-colo replication of this topic</p></li>
-<li><p><strong>replicationBacklog</strong>: The outbound replication backlog in messages</p></li>
-<li><p><strong>connected</strong>: Whether the outbound replicator is connected</p></li>
-<li><p><strong>replicationDelayInSeconds</strong>: How long the oldest message has been waiting to be sent through the connection, if connected is true</p></li>
-<li><p><strong>inboundConnection</strong>: The IP and port of the broker in the remote cluster's publisher connection to this broker</p></li>
-<li><p><strong>inboundConnectedSince</strong>: The TCP connection being used to publish messages to the remote cluster. If there are no local publishers connected, this connection is automatically closed after a minute.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-  <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">4641.528542257553</span>,
-  <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">44663039.74947473</span>,
-  <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-  <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">1232439.816728665</span>,
-  <span class="hljs-attr">"storageSize"</span>: <span class="hljs-number">135532389160</span>,
-  <span class="hljs-attr">"publishers"</span>: [
-    {
-      <span class="hljs-attr">"msgRateIn"</span>: <span class="hljs-number">57.855383881403576</span>,
-      <span class="hljs-attr">"msgThroughputIn"</span>: <span class="hljs-number">558994.7078932219</span>,
-      <span class="hljs-attr">"averageMsgSize"</span>: <span class="hljs-number">613135</span>,
-      <span class="hljs-attr">"producerId"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"producerName"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"address"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"connectedSince"</span>: <span class="hljs-literal">null</span>
-    }
-  ],
-  <span class="hljs-attr">"subscriptions"</span>: {
-    <span class="hljs-attr">"my-topic_subscription"</span>: {
-      <span class="hljs-attr">"msgRateOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgThroughputOut"</span>: <span class="hljs-number">0</span>,
-      <span class="hljs-attr">"msgBacklog"</span>: <span class="hljs-number">116632</span>,
-      <span class="hljs-attr">"type"</span>: <span class="hljs-literal">null</span>,
-      <span class="hljs-attr">"msgRateExpired"</span>: <span class="hljs-number">36.98245516804671</span>,
-      <span class="hljs-attr">"consumers"</span>: []
-    }
-  },
-  <span class="hljs-attr">"replication"</span>: {}
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-6"></a><a href="#pulsar-admin-6" 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- [...]
-<p>Topic stats can be fetched using <a href="../../reference/CliTools#stats"><code>stats</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent stats \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-6"></a><a href="#rest-api-6" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/stats %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant:namespace/:destination/stats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-internal-stats"></a><a href="#get-internal-stats" 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- [...]
-<p>It shows detailed statistics of a topic.</p>
-<ul>
-<li><p><strong>entriesAddedCounter</strong>: Messages published since this broker loaded this topic</p></li>
-<li><p><strong>numberOfEntries</strong>: Total number of messages being tracked</p></li>
-<li><p><strong>totalSize</strong>: Total storage size in bytes of all messages</p></li>
-<li><p><strong>currentLedgerEntries</strong>: Count of messages written to the ledger currently open for writing</p></li>
-<li><p><strong>currentLedgerSize</strong>: Size in bytes of messages written to ledger currently open for writing</p></li>
-<li><p><strong>lastLedgerCreatedTimestamp</strong>: time when last ledger was created</p></li>
-<li><p><strong>lastLedgerCreationFailureTimestamp:</strong> time when last ledger was failed</p></li>
-<li><p><strong>waitingCursorsCount</strong>: How many cursors are &quot;caught up&quot; and waiting for a new message to be published</p></li>
-<li><p><strong>pendingAddEntriesCount</strong>: How many messages have (asynchronous) write requests we are waiting on completion</p></li>
-<li><p><strong>lastConfirmedEntry</strong>: The ledgerid:entryid of the last message successfully written. If the entryid is -1, then the ledger has been opened or is currently being opened but has no entries written yet.</p></li>
-<li><p><strong>state</strong>: The state of this ledger for writing. LedgerOpened means we have a ledger open for saving published messages.</p></li>
-<li><p><strong>ledgers</strong>: The ordered list of all ledgers for this topic holding its messages</p></li>
-<li><p><strong>cursors</strong>: The list of all cursors on this topic. There will be one for every subscription you saw in the topic stats.</p></li>
-<li><p><strong>markDeletePosition</strong>: The ack position: the last message the subscriber acknowledged receiving</p></li>
-<li><p><strong>readPosition</strong>: The latest position of subscriber for reading message</p></li>
-<li><p><strong>waitingReadOp</strong>: This is true when the subscription has read the latest message published to the topic and is waiting on new messages to be published.</p></li>
-<li><p><strong>pendingReadOps</strong>: The counter for how many outstanding read requests to the BookKeepers we have in progress</p></li>
-<li><p><strong>messagesConsumedCounter</strong>: Number of messages this cursor has acked since this broker loaded this topic</p></li>
-<li><p><strong>cursorLedger</strong>: The ledger being used to persistently store the current markDeletePosition</p></li>
-<li><p><strong>cursorLedgerLastEntry</strong>: The last entryid used to persistently store the current markDeletePosition</p></li>
-<li><p><strong>individuallyDeletedMessages</strong>: If Acks are being done out of order, shows the ranges of messages Acked between the markDeletePosition and the read-position</p></li>
-<li><p><strong>lastLedgerSwitchTimestamp</strong>: The last time the cursor ledger was rolled over</p></li>
-<li><p><strong>state</strong>: The state of the cursor ledger: Open means we have a cursor ledger for saving updates of the markDeletePosition.</p></li>
-</ul>
-<pre><code class="hljs css languages- json">{
-    <span class="hljs-attr">"entriesAddedCounter"</span>: <span class="hljs-number">20449518</span>,
-    <span class="hljs-attr">"numberOfEntries"</span>: <span class="hljs-number">3233</span>,
-    <span class="hljs-attr">"totalSize"</span>: <span class="hljs-number">331482</span>,
-    <span class="hljs-attr">"currentLedgerEntries"</span>: <span class="hljs-number">3233</span>,
-    <span class="hljs-attr">"currentLedgerSize"</span>: <span class="hljs-number">331482</span>,
-    <span class="hljs-attr">"lastLedgerCreatedTimestamp"</span>: <span class="hljs-string">"2016-06-29 03:00:23.825"</span>,
-    <span class="hljs-attr">"lastLedgerCreationFailureTimestamp"</span>: <span class="hljs-literal">null</span>,
-    <span class="hljs-attr">"waitingCursorsCount"</span>: <span class="hljs-number">1</span>,
-    <span class="hljs-attr">"pendingAddEntriesCount"</span>: <span class="hljs-number">0</span>,
-    <span class="hljs-attr">"lastConfirmedEntry"</span>: <span class="hljs-string">"324711539:3232"</span>,
-    <span class="hljs-attr">"state"</span>: <span class="hljs-string">"LedgerOpened"</span>,
-    <span class="hljs-attr">"ledgers"</span>: [
-        {
-            <span class="hljs-attr">"ledgerId"</span>: <span class="hljs-number">324711539</span>,
-            <span class="hljs-attr">"entries"</span>: <span class="hljs-number">0</span>,
-            <span class="hljs-attr">"size"</span>: <span class="hljs-number">0</span>
-        }
-    ],
-    <span class="hljs-attr">"cursors"</span>: {
-        <span class="hljs-attr">"my-subscription"</span>: {
-            <span class="hljs-attr">"markDeletePosition"</span>: <span class="hljs-string">"324711539:3133"</span>,
-            <span class="hljs-attr">"readPosition"</span>: <span class="hljs-string">"324711539:3233"</span>,
-            <span class="hljs-attr">"waitingReadOp"</span>: <span class="hljs-literal">true</span>,
-            <span class="hljs-attr">"pendingReadOps"</span>: <span class="hljs-number">0</span>,
-            <span class="hljs-attr">"messagesConsumedCounter"</span>: <span class="hljs-number">20449501</span>,
-            <span class="hljs-attr">"cursorLedger"</span>: <span class="hljs-number">324702104</span>,
-            <span class="hljs-attr">"cursorLedgerLastEntry"</span>: <span class="hljs-number">21</span>,
-            <span class="hljs-attr">"individuallyDeletedMessages"</span>: <span class="hljs-string">"[(324711539:3134‥324711539:3136], (324711539:3137‥324711539:3140], ]"</span>,
-            <span class="hljs-attr">"lastLedgerSwitchTimestamp"</span>: <span class="hljs-string">"2016-06-29 01:30:19.313"</span>,
-            <span class="hljs-attr">"state"</span>: <span class="hljs-string">"Open"</span>
-        }
-    }
-}
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-7"></a><a href="#pulsar-admin-7" 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- [...]
-<p>Topic internal-stats can be fetched using <a href="../../reference/CliTools#stats-internal"><code>stats-internal</code></a> command.</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent stats-internal \</span>
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-7"></a><a href="#rest-api-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/internalStats %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/internalStats">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getInternalStats(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="peek-messages"></a><a href="#peek-messages" 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 [...]
-<p>It peeks N messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-8"></a><a href="#pulsar-admin-8" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent peek-messages \</span>
-  --count 10 --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-
-Message ID: 315674752:0
-Properties:  {  "X-Pulsar-publish-time" : "2015-07-13 17:40:28.451"  }
-msg-payload
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-8"></a><a href="#rest-api-8" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/position/:messagePosition %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/position/:messagePosition">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-8"></a><a href="#java-8" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">int</span> numMessages = <span class="hljs-number">1</span>;
-admin.persistentTopics().peekMessages(destination, subName, numMessages);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="skip-messages"></a><a href="#skip-messages" 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 [...]
-<p>It skips N messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-9"></a><a href="#pulsar-admin-9" 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- [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent skip \</span>
-  --count 10 --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-9"></a><a href="#rest-api-9" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/skip/:numMessages %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/skip/:numMessages">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-9"></a><a href="#java-9" 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. [...]
-<pre><code class="hljs css languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">int</span> numMessages = <span class="hljs-number">1</span>;
-admin.persistentTopics().skipMessages(destination, subName, numMessages);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="skip-all-messages"></a><a href="#skip-all-messages" 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- [...]
-<p>It skips all old messages for a specific subscription of a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-10"></a><a href="#pulsar-admin-10" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent skip-all \</span>
-  --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-10"></a><a href="#rest-api-10" 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 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/skip_all %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/skip_all">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-10"></a><a href="#java-10" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-admin.persistentTopics().skipAllMessages(destination, subName);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="reset-cursor"></a><a href="#reset-cursor" 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. [...]
-<p>It resets a subscription’s cursor position back to the position which was recorded X minutes before. It essentially calculates time and position of cursor at X minutes before and resets it at that position.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-11"></a><a href="#pulsar-admin-11" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent reset-cursor \</span>
-  --subscription my-subscription --time 10 \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-11"></a><a href="#rest-api-11" 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 [...]
-<p>{% endpoint POST /admin/v2/persistent/:tenant/:namespace/:destination/subscription/:subName/resetcursor/:timestamp %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscription/:subName/resetcursor/:timestamp">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-11"></a><a href="#java-11" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subName = <span class="hljs-string">"my-subscription"</span>;
-<span class="hljs-keyword">long</span> timestamp = <span class="hljs-number">2342343L</span>;
-admin.persistentTopics().skipAllMessages(destination, subName, timestamp);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="lookup-of-topic"></a><a href="#lookup-of-topic" 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  [...]
-<p>It locates broker url which is serving the given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-12"></a><a href="#pulsar-admin-12" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent lookup \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- "pulsar://broker1.org.com:4480"
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-12"></a><a href="#rest-api-12" 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 [...]
-<p>{% endpoint GET /lookup/v2/destination/persistent/:tenant:namespace/:destination %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-12"></a><a href="#java-12" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.lookup().lookupDestination(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-bundle"></a><a href="#get-bundle" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>It gives range of the bundle which contains given topic</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-13"></a><a href="#pulsar-admin-13" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent bundle-range \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- "0x00000000_0xffffffff"
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-13"></a><a href="#rest-api-13" 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 [...]
-<p>{% endpoint GET /lookup/v2/destination/:destination_domain/:tenant/:namespace/:destination/bundle %}</p>
-<h4><a class="anchor" aria-hidden="true" id="java-13"></a><a href="#java-13" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.lookup().getBundleRange(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-subscriptions"></a><a href="#get-subscriptions" 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- [...]
-<p>It shows all subscription names for a given topic.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-14"></a><a href="#pulsar-admin-14" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent subscriptions \</span>
-  persistent://test-tenant/ns1/tp1 \
-
- my-subscription
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-14"></a><a href="#rest-api-14" 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 [...]
-<p>{% endpoint GET /admin/v2/persistent/:tenant/:namespace/:destination/subscriptions %}</p>
-<p><a href="../../reference/RestApi#/admin/persistent/:tenant/:namespace/:destination/subscriptions">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-14"></a><a href="#java-14" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-admin.persistentTopics().getSubscriptions(destination);
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="unsubscribe"></a><a href="#unsubscribe" 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 [...]
-<p>It can also help to unsubscribe a subscription which is no more processing further messages.</p>
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-15"></a><a href="#pulsar-admin-15" 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  [...]
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin persistent unsubscribe \</span>
-  --subscription my-subscription \
-  persistent://test-tenant/ns1/tp1 \
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="rest-api-15"></a><a href="#rest-api-15" 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 [...]
-<p>{% endpoint POST /admin/v2/namespaces/:tenant/:namespace/unsubscribe/:subscription %}</p>
-<p><a href="../../reference/RestApi#/admin/namespaces/:tenant/:namespace/unsubscribe/:subscription">More info</a></p>
-<h4><a class="anchor" aria-hidden="true" id="java-15"></a><a href="#java-15" 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 languages- java">String destination = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;
-String subscriptionName = <span class="hljs-string">"my-subscription"</span>;
-admin.persistentTopics().deleteSubscription(destination, subscriptionName);
-</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#persistent-topics-resources">Persistent topics resources</a><ul class="toc-headings"><li><a href="#list-of-topics">List of topics</a></li><li><a href="#grant-permission">Grant permission</a></li><li><a href="#get-permission">Get permission</a></li><li><a href="#revoke-permission">Revoke permission</a></li><li><a href="#delete-topic">Delete topic</a></li> [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-persistent-topics";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-tenants.html b/content/staging/docs/admin-api-tenants.html
index 8f8870f..3a4a55b 100644
--- a/content/staging/docs/admin-api-tenants.html
+++ b/content/staging/docs/admin-api-tenants.html
@@ -1,124 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Tenants, like namespaces, can be managed using the [admin API](/staging/docs/admin-api-overview). There are currently two configurable aspects of tenants:"/><meta name="docsearch:language" content="en [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/staging/docs/admin-api-overview">admin AP [...]
-<ul>
-<li>Admin roles</li>
-<li>Allowed clusters</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="tenant-resources"></a><a href="#tenant-resources" 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. [...]
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can list all of the tenants associated with an <a href="/staging/docs/reference-terminology#instance">instance</a> using the <a href="/staging/docs/pulsar-admin#tenants-list"><code>list</code></a> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
-</code></pre>
-<p>That will return a simple list, like this:</p>
-<pre><code class="hljs"><span class="hljs-keyword">my</span>-tenant<span class="hljs-number">-1</span>
-<span class="hljs-keyword">my</span>-tenant<span class="hljs-number">-2</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>You can create a new tenant using the <a href="/staging/docs/pulsar-admin#tenants-create"><code>create</code></a> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants create my-tenant</span>
-</code></pre>
-<p>When creating a tenant, you can assign admin roles using the <code>-r</code>/<code>--admin-roles</code> flag. You can specify multiple roles as a comma-separated list. Here are some examples:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
-  --admin-roles role1,role2,role3
-<span class="hljs-meta">
-$</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
-  -r role1
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-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.22-2- [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>You can see a tenant's configuration as a JSON object using the <a href="/staging/docs/pulsar-admin#tenants-get"><code>get</code></a> subcommand and specifying the name of the tenant:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants get my-tenant</span>
-{
-  "adminRoles": [
-    "admin1",
-    "admin2"
-  ],
-  "allowedClusters": [
-    "cl1",
-    "cl2"
-  ]
-}
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
-<p>You can delete a tenant using the <a href="/staging/docs/pulsar-admin#tenants-delete"><code>delete</code></a> subcommand and specifying the tenant name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="updating"></a><a href="#updating" 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  [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>You can update a tenant's configuration using the <a href="/staging/docs/pulsar-admin#tenants-update"><code>update</code></a> subcommand</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-clusters">← Managing Clusters</a><a class="docs-next button" href="/staging/docs/admin-api-brokers">Managing Brokers →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a href="#create">Create</a></li><li><a href="#get-configuration">Get config [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-tenants";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/admin-api-tenants/index.html b/content/staging/docs/admin-api-tenants/index.html
index 8f8870f..3a4a55b 100644
--- a/content/staging/docs/admin-api-tenants/index.html
+++ b/content/staging/docs/admin-api-tenants/index.html
@@ -1,124 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Tenants, like namespaces, can be managed using the [admin API](/staging/docs/admin-api-overview). There are currently two configurable aspects of tenants:"/><meta name="docsearch:language" content="en [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/admin-api-tenants.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Managing Tenants</h1></header><article><div><span><p>Tenants, like namespaces, can be managed using the <a href="/staging/docs/admin-api-overview">admin AP [...]
-<ul>
-<li>Admin roles</li>
-<li>Allowed clusters</li>
-</ul>
-<h2><a class="anchor" aria-hidden="true" id="tenant-resources"></a><a href="#tenant-resources" 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. [...]
-<h3><a class="anchor" aria-hidden="true" id="list"></a><a href="#list" 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 [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" 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. [...]
-<p>You can list all of the tenants associated with an <a href="/staging/docs/reference-terminology#instance">instance</a> using the <a href="/staging/docs/pulsar-admin#tenants-list"><code>list</code></a> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
-</code></pre>
-<p>That will return a simple list, like this:</p>
-<pre><code class="hljs"><span class="hljs-keyword">my</span>-tenant<span class="hljs-number">-1</span>
-<span class="hljs-keyword">my</span>-tenant<span class="hljs-number">-2</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="create"></a><a href="#create" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" 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- [...]
-<p>You can create a new tenant using the <a href="/staging/docs/pulsar-admin#tenants-create"><code>create</code></a> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants create my-tenant</span>
-</code></pre>
-<p>When creating a tenant, you can assign admin roles using the <code>-r</code>/<code>--admin-roles</code> flag. You can specify multiple roles as a comma-separated list. Here are some examples:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
-  --admin-roles role1,role2,role3
-<span class="hljs-meta">
-$</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
-  -r role1
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-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.22-2- [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-2"></a><a href="#pulsar-admin-2" 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- [...]
-<p>You can see a tenant's configuration as a JSON object using the <a href="/staging/docs/pulsar-admin#tenants-get"><code>get</code></a> subcommand and specifying the name of the tenant:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants get my-tenant</span>
-{
-  "adminRoles": [
-    "admin1",
-    "admin2"
-  ],
-  "allowedClusters": [
-    "cl1",
-    "cl2"
-  ]
-}
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="delete"></a><a href="#delete" 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. [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-adnin"></a><a href="#pulsar-adnin" 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. [...]
-<p>You can delete a tenant using the <a href="/staging/docs/pulsar-admin#tenants-delete"><code>delete</code></a> subcommand and specifying the tenant name:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="updating"></a><a href="#updating" 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  [...]
-<h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>You can update a tenant's configuration using the <a href="/staging/docs/pulsar-admin#tenants-update"><code>update</code></a> subcommand</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/admin-api-clusters">← Managing Clusters</a><a class="docs-next button" href="/staging/docs/admin-api-brokers">Managing Brokers →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tenant-resources">Tenant resources</a><ul class="toc-headings"><li><a href="#list">List</a></li><li><a href="#create">Create</a></li><li><a href="#get-configuration">Get config [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/admin-api-tenants";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-dashboard.html b/content/staging/docs/administration-dashboard.html
index 1d02fa9..b0b9053 100644
--- a/content/staging/docs/administration-dashboard.html
+++ b/content/staging/docs/administration-dashboard.html
@@ -1,102 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar dashboard · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Pulsar dashboard is a web application that enables users to monitor current stats for all [topics](/staging/docs/reference-terminology#topic) in tabular form."/><meta name="docsearch:language" [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor current stats for a [...]
-<p>The dashboard is a data collector that polls stats from all the brokers in a Pulsar instance (across multiple clusters) and stores all the information in a <a href="https://www.postgresql.org/">PostgreSQL</a> database.</p>
-<p>A <a href="https://www.djangoproject.com">Django</a> web app is used to render the collected data.</p>
-<h2><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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>The easiest way to use the dashboard is to run it inside a <a href="https://www.docker.com/products/docker">Docker</a> container. A <a href="https://github.com/apache/incubator-pulsar/tree/master//dashboard/Dockerfile"><code>Dockerfile</code></a>
- to generate the image is provided.</p>
-<p>To generate the Docker image:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> docker build -t apachepulsar/pulsar-dashboard dashboard</span>
-</code></pre>
-<p>To run the dashboard:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> SERVICE_URL=http://broker.example.com:8080/</span>
-<span class="hljs-meta">$</span><span class="bash"> docker run -p 80:80 \</span>
-  -e SERVICE_URL=$SERVICE_URL \
-  apachepulsar/pulsar-dashboard
-</code></pre>
-<p>You need to specify only one service URL for a Pulsar cluster. Internally, the collector will figure out all the existing clusters and the brokers from where it needs to pull the metrics. If you're connecting the dashboard to Pulsar running in standalone mode, the URL will be <code>http://localhost:8080</code> by default.</p>
-<p>Once the Docker container is running, the web dashboard will be accessible via <code>localhost</code> or whichever host is being used by Docker.</p>
-<blockquote>
-<p>The <code>SERVICE_URL</code> that the dashboard uses needs to be reachable from inside the Docker container</p>
-</blockquote>
-<p>If the Pulsar service is running in standalone mode in <code>localhost</code>, the <code>SERVICE_URL</code> would have to
-be the IP of the machine.</p>
-<p>Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar standalone --advertised-address 1.2.3.4</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="known-issues"></a><a href="#known-issues" 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. [...]
-<p>Pulsar <a href="/staging/docs/security-overview#authentication-providers">authentication</a> is not supported at this point. The dashboard's data collector does not pass any authentication-related data and will be denied access if the Pulsar broker requires authentication.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-geo">← Pulsar geo-replication</a><a class="docs-next button" href="/staging/docs/administration-stats">Pulsar stats →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section cla [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-dashboard";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-dashboard/index.html b/content/staging/docs/administration-dashboard/index.html
index 1d02fa9..b0b9053 100644
--- a/content/staging/docs/administration-dashboard/index.html
+++ b/content/staging/docs/administration-dashboard/index.html
@@ -1,102 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar dashboard · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Pulsar dashboard is a web application that enables users to monitor current stats for all [topics](/staging/docs/reference-terminology#topic) in tabular form."/><meta name="docsearch:language" [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-dashboard.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar dashboard</h1></header><article><div><span><p>The Pulsar dashboard is a web application that enables users to monitor current stats for a [...]
-<p>The dashboard is a data collector that polls stats from all the brokers in a Pulsar instance (across multiple clusters) and stores all the information in a <a href="https://www.postgresql.org/">PostgreSQL</a> database.</p>
-<p>A <a href="https://www.djangoproject.com">Django</a> web app is used to render the collected data.</p>
-<h2><a class="anchor" aria-hidden="true" id="install"></a><a href="#install" 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>The easiest way to use the dashboard is to run it inside a <a href="https://www.docker.com/products/docker">Docker</a> container. A <a href="https://github.com/apache/incubator-pulsar/tree/master//dashboard/Dockerfile"><code>Dockerfile</code></a>
- to generate the image is provided.</p>
-<p>To generate the Docker image:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> docker build -t apachepulsar/pulsar-dashboard dashboard</span>
-</code></pre>
-<p>To run the dashboard:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> SERVICE_URL=http://broker.example.com:8080/</span>
-<span class="hljs-meta">$</span><span class="bash"> docker run -p 80:80 \</span>
-  -e SERVICE_URL=$SERVICE_URL \
-  apachepulsar/pulsar-dashboard
-</code></pre>
-<p>You need to specify only one service URL for a Pulsar cluster. Internally, the collector will figure out all the existing clusters and the brokers from where it needs to pull the metrics. If you're connecting the dashboard to Pulsar running in standalone mode, the URL will be <code>http://localhost:8080</code> by default.</p>
-<p>Once the Docker container is running, the web dashboard will be accessible via <code>localhost</code> or whichever host is being used by Docker.</p>
-<blockquote>
-<p>The <code>SERVICE_URL</code> that the dashboard uses needs to be reachable from inside the Docker container</p>
-</blockquote>
-<p>If the Pulsar service is running in standalone mode in <code>localhost</code>, the <code>SERVICE_URL</code> would have to
-be the IP of the machine.</p>
-<p>Similarly, given the Pulsar standalone advertises itself with localhost by default, we need to
-explicitely set the advertise address to the host IP. For example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar standalone --advertised-address 1.2.3.4</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="known-issues"></a><a href="#known-issues" 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. [...]
-<p>Pulsar <a href="/staging/docs/security-overview#authentication-providers">authentication</a> is not supported at this point. The dashboard's data collector does not pass any authentication-related data and will be denied access if the Pulsar broker requires authentication.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-geo">← Pulsar geo-replication</a><a class="docs-next button" href="/staging/docs/administration-stats">Pulsar stats →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#install">Install</a><ul class="toc-headings"><li><a href="#known-issues">Known issues</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section cla [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-dashboard";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-geo.html b/content/staging/docs/administration-geo.html
index e3049d4..56db592 100644
--- a/content/staging/docs/administration-geo.html
+++ b/content/staging/docs/administration-geo.html
@@ -1,148 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar geo-replication · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="*Geo-replication* is the replication of persistently stored message data across multiple clusters of a Pulsar instance."/><meta name="docsearch:language" content="en"/><meta property="og:title"  [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message data across multiple [...]
-<h2><a class="anchor" aria-hidden="true" id="how-it-works"></a><a href="#how-it-works" 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. [...]
-<p>The diagram below illustrates the process of geo-replication across Pulsar clusters:</p>
-<p><img src="/staging/docs/assets/geo-replication.png" alt="Replication Diagram"></p>
-<p>In this diagram, whenever producers <strong>P1</strong>, <strong>P2</strong>, and <strong>P3</strong> publish messages to the topic <strong>T1</strong> on clusters <strong>Cluster-A</strong>, <strong>Cluster-B</strong>, and <strong>Cluster-C</strong>, respectively, those messages are instantly replicated across clusters. Once replicated, consumers <strong>C1</strong> and <strong>C2</strong> can consume those messages from their respective clusters.</p>
-<p>Without geo-replication, consumers <strong>C1</strong> and <strong>C2</strong> wouldn't be able to consume messages published by producer <strong>P3</strong>.</p>
-<h2><a class="anchor" aria-hidden="true" id="geo-replication-and-pulsar-properties"></a><a href="#geo-replication-and-pulsar-properties" 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 [...]
-<p>Geo-replication must be enabled on a per-tenant basis in Pulsar. Geo-replication can be enabled between clusters only when a property has been created that allows access to both clusters.</p>
-<p>Although geo-replication must be enabled between two clusters, it's actually managed at the namespace level. You must do the following to enable geo-replication for a namespace:</p>
-<ul>
-<li><a href="#creating-global-namespaces">Create a global namespace</a></li>
-<li>Configure that namespace to replicate between two or more provisioned clusters</li>
-</ul>
-<p>Any message published on <em>any</em> topic in that namespace will then be replicated to all clusters in the specified set.</p>
-<h2><a class="anchor" aria-hidden="true" id="local-persistence-and-forwarding"></a><a href="#local-persistence-and-forwarding" 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. [...]
-<p>When messages are produced on a Pulsar topic, they are first persisted in the local cluster and then forwarded asynchronously to the remote clusters.</p>
-<p>In normal cases, when there are no connectivity issues, messages are replicated immediately, at the same time as they are dispatched to local consumers. Typically, end-to-end delivery latency is defined by the network <a href="https://en.wikipedia.org/wiki/Round-trip_delay_time">round-trip time</a> (RTT) between the remote regions.</p>
-<p>Applications can create producers and consumers in any of the clusters, even when the remote clusters are not reachable (like during a network partition).</p>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="subscriptions-are-local-to-a-cluster"></a><a href="#subscriptions-are-local-to-a-cluster" 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 [...]
-<p>While producers and consumers can publish to and consume from any cluster in a Pulsar instance, subscriptions are local to the clusters in which they are created and cannot be transferred between clusters. If you do need to transfer a subscription, you’ll need to create a new subscription in the desired cluster.</p>
-</blockquote>
-<p>In the example in the image above, the topic <strong>T1</strong> is being replicated between 3 clusters, <strong>Cluster-A</strong>, <strong>Cluster-B</strong>, and <strong>Cluster-C</strong>.</p>
-<p>All messages produced in any cluster will be delivered to all subscriptions in all the other clusters. In this case, consumers <strong>C1</strong> and <strong>C2</strong> will receive all messages published by producers <strong>P1</strong>, <strong>P2</strong>, and <strong>P3</strong>. Ordering is still guaranteed on a per-producer basis.</p>
-<h2><a class="anchor" aria-hidden="true" id="configuring-replication"></a><a href="#configuring-replication" 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 [...]
-<p>As stated <a href="#geo-replication-and-pulsar-properties">above</a>, geo-replication in Pulsar is managed at the <a href="/staging/docs/reference-terminology#tenant">tenant</a> level.</p>
-<h3><a class="anchor" aria-hidden="true" id="granting-permissions-to-properties"></a><a href="#granting-permissions-to-properties" 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.5 [...]
-<p>To establish replication to a cluster, the tenant needs permission to use that cluster. This permission can be granted when the property is created or later on.</p>
-<p>At creation time, specify all the intended clusters:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin properties create my-property \</span>
-  --admin-roles my-admin-role \
-  --allowed-clusters us-west,us-east,us-cent
-</code></pre>
-<p>To update permissions of an existing property, use <code>update</code> instead of <code>create</code>.</p>
-<h3><a class="anchor" aria-hidden="true" id="creating-global-namespaces"></a><a href="#creating-global-namespaces" 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 12H [...]
-<p>Replication must be used with <em>global</em> topics, meaning topics that belong to a global namespace and are thus not tied to any particular cluster.</p>
-<p>Global namespaces need to be created in the <code>global</code> virtual cluster. For example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create my-tenant/my-namespace</span>
-</code></pre>
-<p>Initially, the namespace is not assigned to any cluster. You can assign the namespace to clusters using the <code>set-clusters</code> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces <span class="hljs-built_in">set</span>-clusters my-tenant/my-namespace \</span>
-  --clusters us-west,us-east,us-cent
-</code></pre>
-<p>The replication clusters for a namespace can be changed at any time, with no disruption to ongoing traffic. Replication channels will be immediately set up or stopped in all the clusters as soon as the configuration changes.</p>
-<h3><a class="anchor" aria-hidden="true" id="using-global-topics"></a><a href="#using-global-topics" 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.2 [...]
-<p>Once you've created a global namespace, any topics that producers or consumers create within that namespace will be global. Typically, each application will use the <code>serviceUrl</code> for the local cluster.</p>
-<h4><a class="anchor" aria-hidden="true" id="selective-replication"></a><a href="#selective-replication" 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>By default, messages are replicated to all clusters configured for the namespace. You can restrict replication selectively by specifying a replication list for a message. That message will then be replicated only to the subset in the replication list.</p>
-<p>Below is an example for the <a href="/staging/docs/client-libraries-java">Java API</a>. Note the use of the <code>setReplicationClusters</code> method when constructing the <a href="https://pulsar.incubator.apache.org/api/client/org/apache/pulsar/client/api/Message">Message</a>
- object:</p>
-<pre><code class="hljs css languages- java">List&lt;String&gt; restrictReplicationTo = Arrays.asList(
-        <span class="hljs-string">"us-west"</span>,
-        <span class="hljs-string">"us-east"</span>
-);
-
-Producer producer = client.newProducer()
-        .topic(<span class="hljs-string">"some-topic"</span>)
-        .create();
-
-producer.newMessage()
-        .value(<span class="hljs-string">"my-payload"</span>.getBytes())
-        .setReplicationClusters(restrictReplicationTo)
-        .send();
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="topic-stats"></a><a href="#topic-stats" 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 [...]
-<p>Topic-specific statistics for global topics are available via the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool and <a href="/staging/docs/reference-rest-api">REST API</a>:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin persistent stats persistent://my-tenant/my-namespace/my-topic</span>
-</code></pre>
-<p>Each cluster reports its own local stats, including incoming and outgoing replication rates and backlogs.</p>
-<h4><a class="anchor" aria-hidden="true" id="deleting-a-global-topic"></a><a href="#deleting-a-global-topic" 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 [...]
-<p>Given that global topics exist in multiple regions, it's not possible to directly delete a global topic. Instead, you should rely on automatic topic garbage collection.</p>
-<p>In Pulsar, a topic is automatically deleted when it's no longer used, that is to say, when no producers or consumers are connected <em>and</em> there are no subscriptions <em>and</em> no more messages are kept for retention. For global topics, each region will use a fault-tolerant mechanism to decide when it's safe to delete the topic locally.</p>
-<p>You can explicitly disable topic garbage collection by setting <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code> in your <a href="reference-configuration#broker">broker configuration</a>.</p>
-<p>To delete a global topic, close all producers and consumers on the topic and delete all its local subscriptions in every replication cluster. When Pulsar determines that no valid subscription for the topic remains across the system, it will garbage collect the topic.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-zk-bk">← ZooKeeper and BookKeeper administration</a><a class="docs-next button" href="/staging/docs/administration-dashboard">The Pulsar dashboard →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-replication and Pulsar properties</a></li><li><a  [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-geo";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-geo/index.html b/content/staging/docs/administration-geo/index.html
index e3049d4..56db592 100644
--- a/content/staging/docs/administration-geo/index.html
+++ b/content/staging/docs/administration-geo/index.html
@@ -1,148 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar geo-replication · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="*Geo-replication* is the replication of persistently stored message data across multiple clusters of a Pulsar instance."/><meta name="docsearch:language" content="en"/><meta property="og:title"  [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-geo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar geo-replication</h1></header><article><div><span><p><em>Geo-replication</em> is the replication of persistently stored message data across multiple [...]
-<h2><a class="anchor" aria-hidden="true" id="how-it-works"></a><a href="#how-it-works" 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. [...]
-<p>The diagram below illustrates the process of geo-replication across Pulsar clusters:</p>
-<p><img src="/staging/docs/assets/geo-replication.png" alt="Replication Diagram"></p>
-<p>In this diagram, whenever producers <strong>P1</strong>, <strong>P2</strong>, and <strong>P3</strong> publish messages to the topic <strong>T1</strong> on clusters <strong>Cluster-A</strong>, <strong>Cluster-B</strong>, and <strong>Cluster-C</strong>, respectively, those messages are instantly replicated across clusters. Once replicated, consumers <strong>C1</strong> and <strong>C2</strong> can consume those messages from their respective clusters.</p>
-<p>Without geo-replication, consumers <strong>C1</strong> and <strong>C2</strong> wouldn't be able to consume messages published by producer <strong>P3</strong>.</p>
-<h2><a class="anchor" aria-hidden="true" id="geo-replication-and-pulsar-properties"></a><a href="#geo-replication-and-pulsar-properties" 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 [...]
-<p>Geo-replication must be enabled on a per-tenant basis in Pulsar. Geo-replication can be enabled between clusters only when a property has been created that allows access to both clusters.</p>
-<p>Although geo-replication must be enabled between two clusters, it's actually managed at the namespace level. You must do the following to enable geo-replication for a namespace:</p>
-<ul>
-<li><a href="#creating-global-namespaces">Create a global namespace</a></li>
-<li>Configure that namespace to replicate between two or more provisioned clusters</li>
-</ul>
-<p>Any message published on <em>any</em> topic in that namespace will then be replicated to all clusters in the specified set.</p>
-<h2><a class="anchor" aria-hidden="true" id="local-persistence-and-forwarding"></a><a href="#local-persistence-and-forwarding" 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. [...]
-<p>When messages are produced on a Pulsar topic, they are first persisted in the local cluster and then forwarded asynchronously to the remote clusters.</p>
-<p>In normal cases, when there are no connectivity issues, messages are replicated immediately, at the same time as they are dispatched to local consumers. Typically, end-to-end delivery latency is defined by the network <a href="https://en.wikipedia.org/wiki/Round-trip_delay_time">round-trip time</a> (RTT) between the remote regions.</p>
-<p>Applications can create producers and consumers in any of the clusters, even when the remote clusters are not reachable (like during a network partition).</p>
-<blockquote>
-<h4><a class="anchor" aria-hidden="true" id="subscriptions-are-local-to-a-cluster"></a><a href="#subscriptions-are-local-to-a-cluster" 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 [...]
-<p>While producers and consumers can publish to and consume from any cluster in a Pulsar instance, subscriptions are local to the clusters in which they are created and cannot be transferred between clusters. If you do need to transfer a subscription, you’ll need to create a new subscription in the desired cluster.</p>
-</blockquote>
-<p>In the example in the image above, the topic <strong>T1</strong> is being replicated between 3 clusters, <strong>Cluster-A</strong>, <strong>Cluster-B</strong>, and <strong>Cluster-C</strong>.</p>
-<p>All messages produced in any cluster will be delivered to all subscriptions in all the other clusters. In this case, consumers <strong>C1</strong> and <strong>C2</strong> will receive all messages published by producers <strong>P1</strong>, <strong>P2</strong>, and <strong>P3</strong>. Ordering is still guaranteed on a per-producer basis.</p>
-<h2><a class="anchor" aria-hidden="true" id="configuring-replication"></a><a href="#configuring-replication" 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 [...]
-<p>As stated <a href="#geo-replication-and-pulsar-properties">above</a>, geo-replication in Pulsar is managed at the <a href="/staging/docs/reference-terminology#tenant">tenant</a> level.</p>
-<h3><a class="anchor" aria-hidden="true" id="granting-permissions-to-properties"></a><a href="#granting-permissions-to-properties" 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.5 [...]
-<p>To establish replication to a cluster, the tenant needs permission to use that cluster. This permission can be granted when the property is created or later on.</p>
-<p>At creation time, specify all the intended clusters:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin properties create my-property \</span>
-  --admin-roles my-admin-role \
-  --allowed-clusters us-west,us-east,us-cent
-</code></pre>
-<p>To update permissions of an existing property, use <code>update</code> instead of <code>create</code>.</p>
-<h3><a class="anchor" aria-hidden="true" id="creating-global-namespaces"></a><a href="#creating-global-namespaces" 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 12H [...]
-<p>Replication must be used with <em>global</em> topics, meaning topics that belong to a global namespace and are thus not tied to any particular cluster.</p>
-<p>Global namespaces need to be created in the <code>global</code> virtual cluster. For example:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create my-tenant/my-namespace</span>
-</code></pre>
-<p>Initially, the namespace is not assigned to any cluster. You can assign the namespace to clusters using the <code>set-clusters</code> subcommand:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces <span class="hljs-built_in">set</span>-clusters my-tenant/my-namespace \</span>
-  --clusters us-west,us-east,us-cent
-</code></pre>
-<p>The replication clusters for a namespace can be changed at any time, with no disruption to ongoing traffic. Replication channels will be immediately set up or stopped in all the clusters as soon as the configuration changes.</p>
-<h3><a class="anchor" aria-hidden="true" id="using-global-topics"></a><a href="#using-global-topics" 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.2 [...]
-<p>Once you've created a global namespace, any topics that producers or consumers create within that namespace will be global. Typically, each application will use the <code>serviceUrl</code> for the local cluster.</p>
-<h4><a class="anchor" aria-hidden="true" id="selective-replication"></a><a href="#selective-replication" 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>By default, messages are replicated to all clusters configured for the namespace. You can restrict replication selectively by specifying a replication list for a message. That message will then be replicated only to the subset in the replication list.</p>
-<p>Below is an example for the <a href="/staging/docs/client-libraries-java">Java API</a>. Note the use of the <code>setReplicationClusters</code> method when constructing the <a href="https://pulsar.incubator.apache.org/api/client/org/apache/pulsar/client/api/Message">Message</a>
- object:</p>
-<pre><code class="hljs css languages- java">List&lt;String&gt; restrictReplicationTo = Arrays.asList(
-        <span class="hljs-string">"us-west"</span>,
-        <span class="hljs-string">"us-east"</span>
-);
-
-Producer producer = client.newProducer()
-        .topic(<span class="hljs-string">"some-topic"</span>)
-        .create();
-
-producer.newMessage()
-        .value(<span class="hljs-string">"my-payload"</span>.getBytes())
-        .setReplicationClusters(restrictReplicationTo)
-        .send();
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="topic-stats"></a><a href="#topic-stats" 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 [...]
-<p>Topic-specific statistics for global topics are available via the <a href="/staging/docs/pulsar-admin"><code>pulsar-admin</code></a> tool and <a href="/staging/docs/reference-rest-api">REST API</a>:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin persistent stats persistent://my-tenant/my-namespace/my-topic</span>
-</code></pre>
-<p>Each cluster reports its own local stats, including incoming and outgoing replication rates and backlogs.</p>
-<h4><a class="anchor" aria-hidden="true" id="deleting-a-global-topic"></a><a href="#deleting-a-global-topic" 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 [...]
-<p>Given that global topics exist in multiple regions, it's not possible to directly delete a global topic. Instead, you should rely on automatic topic garbage collection.</p>
-<p>In Pulsar, a topic is automatically deleted when it's no longer used, that is to say, when no producers or consumers are connected <em>and</em> there are no subscriptions <em>and</em> no more messages are kept for retention. For global topics, each region will use a fault-tolerant mechanism to decide when it's safe to delete the topic locally.</p>
-<p>You can explicitly disable topic garbage collection by setting <code>brokerDeleteInactiveTopicsEnabled</code> to <code>false</code> in your <a href="reference-configuration#broker">broker configuration</a>.</p>
-<p>To delete a global topic, close all producers and consumers on the topic and delete all its local subscriptions in every replication cluster. When Pulsar determines that no valid subscription for the topic remains across the system, it will garbage collect the topic.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-zk-bk">← ZooKeeper and BookKeeper administration</a><a class="docs-next button" href="/staging/docs/administration-dashboard">The Pulsar dashboard →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#geo-replication-and-pulsar-properties">Geo-replication and Pulsar properties</a></li><li><a  [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-geo";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-load-distribution.html b/content/staging/docs/administration-load-distribution.html
index ac42f34..a64ee34 100644
--- a/content/staging/docs/administration-load-distribution.html
+++ b/content/staging/docs/administration-load-distribution.html
@@ -1,219 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar load distribution · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Load distribution across Pulsar brokers"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pulsar load distribution · Apache Pulsar"/><meta property="og:type [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-across-pulsar-broke [...]
-<p>Pulsar is an horizontally scalable messaging system, so it is a core requirement that the traffic
-in a logical cluster must be spread across all the available Pulsar brokers, as evenly as possible.</p>
-<p>In most cases, this is true out of the box and one shouldn't worry about it. There are, though,
-multiple settings and tools to control the traffic distribution and they require a bit of
-context to understand how the traffic is managed in Pulsar.</p>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-load-manager-architecture"></a><a href="#pulsar-load-manager-architecture" 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. [...]
-<h3><a class="anchor" aria-hidden="true" id="dynamic-assignment-of-topics-to-brokers"></a><a href="#dynamic-assignment-of-topics-to-brokers" 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  [...]
-<p>Topics are dynamically assigned to brokers based on the load conditions of all brokers in the
-cluster.</p>
-<p>When a clients starts using new topics that are not assigned to any broker, it will trigger a
-process that, given the load conditions, it will choose the best suited broker to acquire ownership
-of such topic.</p>
-<p>In case of partitioned topics, different partitions might be assigned to different brokers. We talk
-about &quot;topic&quot; in this context to mean either a non-partitioned topic or one partition of a topic.</p>
-<p>The assignment is &quot;dynamic&quot; because it can change very quickly. For example, if the broker owning
-the topic crashes, the topic will be reassigned immediately to another broker. Another scenario is
-that the broker owning the topic becomes overloaded. In this case too, the topic will be
-reassigned to a less loaded broker.</p>
-<p>The dynamic assignment is made possible by the stateless nature of brokers. This also ensure that
-we can quickly expand or shrink the cluster based on usage.</p>
-<h3><a class="anchor" aria-hidden="true" id="assignment-granularity"></a><a href="#assignment-granularity" 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 [...]
-<p>The assignment of topics/partitions to brokers is not done at the individual level. The reason for
-it is to amortize the amount of information that we need to keep track (eg. which topics are
-assigned to a particular broker, what's the load on topics for a broker and similar).</p>
-<p>Instead of individual topic/partition assignment, each broker takes ownership of a subset of the
-topics for a namespace. This subset is called a &quot;<em>bundle</em>&quot; and effectively it's a sharding
-mechanism.</p>
-<p>The namespace is the &quot;administrative&quot; unit: many config knobs or operations are done at the
-namespace level.</p>
-<p>For assignment, a namespaces is sharded into a list of &quot;bundles&quot;, with each bundle comprising
-a portion of overall hash range of the namespace.</p>
-<p>Topics are assigned to a particular bundle by taking the hash of the topic name and seeing in which
-bundle the hash falls into.</p>
-<p>Each bundle is independent of the others and thus is independently assigned to different brokers.</p>
-<h3><a class="anchor" aria-hidden="true" id="creating-namespaces-and-bundles"></a><a href="#creating-namespaces-and-bundles" 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 [...]
-<p>When creating a new namespace, it will set to use the default number of bundles. This is set in
-<code>conf/broker.conf</code>:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># When a namespace is created without specifying the number of bundle, this</span>
-<span class="hljs-comment"># value will be used as the default</span>
-<span class="hljs-attr">defaultNumberOfNamespaceBundles</span>=<span class="hljs-number">4</span>
-</code></pre>
-<p>One can either change the system default, or override it when creating a new namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create my-tenant/my-namespace --clusters us-west --bundles 16</span>
-</code></pre>
-<p>With this command, we're creating a namespace with 16 initial bundles. Therefore the topics for
-this namespaces can immediately be spread across up to 16 brokers.</p>
-<p>In general, if the expected traffic and number of topics is known in advance, it's a good idea to
-start with a reasonable number of bundles instead of waiting for the system to auto-correct the
-distribution.</p>
-<p>On a same note, it is normally beneficial to start with more bundles than number of brokers,
-primarily because of the hashing nature of the distribution of topics into bundles. For example,
-for a namespace with 1000 topics, using something like 64 bundles will achieve a good distribution
-of traffic across 16 brokers.</p>
-<h3><a class="anchor" aria-hidden="true" id="unloading-topics-and-bundles"></a><a href="#unloading-topics-and-bundles" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>In Pulsar there is an admin operation of &quot;unloading&quot; a topic. Unloading means to close the topics,
-release ownership and reassign the topics to a new broker, based on current load.</p>
-<p>When unload happens, the client will experience a small latency blip, typically in the order of
-tens of milliseconds, while the topic is reassigned.</p>
-<p>Unloading is the mechanism used by the load-manager to perform the load shedding, but it can
-also be triggered manually, for example to correct the assignments and redistribute traffic
-even before having any broker overloaded.</p>
-<p>Unloading a topic has no effect on the assignment, but it will just close and reopen the
-particular topic:</p>
-<pre><code class="hljs css languages- shell">pulsar-admin topics unload persistent://tenant/namespace/topic
-</code></pre>
-<p>To unload all topics for a namespace and trigger reassignments:</p>
-<pre><code class="hljs css languages- shell">pulsar-admin namespaces unload tenant/namespace
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="namespace-bundles-splitting"></a><a href="#namespace-bundles-splitting" 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 1 [...]
-<p>Since the load for the topics in a bundle might change over time, or could just be hard to predict
-upfront, bundles can be split in 2 by brokers. The new smaller bundles can then be reassigned
-to different brokers.</p>
-<p>The splitting happens based on some tunable thresholds. Any existing bundle that exceeds any
-of the threshold is a candidate to be split. By default the newly split bundles are also
-immediately offloaded to other brokers, to facilitate the traffic distribution.</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># enable/disable namespace bundle auto split</span>
-<span class="hljs-attr">loadBalancerAutoBundleSplitEnabled</span>=<span class="hljs-literal">true</span>
-
-<span class="hljs-comment"># enable/disable automatic unloading of split bundles</span>
-<span class="hljs-attr">loadBalancerAutoUnloadSplitBundlesEnabled</span>=<span class="hljs-literal">true</span>
-
-<span class="hljs-comment"># maximum topics in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxTopics</span>=<span class="hljs-number">1000</span>
-
-<span class="hljs-comment"># maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxSessions</span>=<span class="hljs-number">1000</span>
-
-<span class="hljs-comment"># maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxMsgRate</span>=<span class="hljs-number">30000</span>
-
-<span class="hljs-comment"># maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxBandwidthMbytes</span>=<span class="hljs-number">100</span>
-
-<span class="hljs-comment"># maximum number of bundles in a namespace (for auto-split)</span>
-<span class="hljs-attr">loadBalancerNamespaceMaximumBundles</span>=<span class="hljs-number">128</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="automatic-load-shedding"></a><a href="#automatic-load-shedding" 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 [...]
-<p>In Pulsar's load manager there is support for automatic load shedding. This means that whenever
-the system recognized a particular broker is overloaded, it will force some traffic to be
-reassigned to less loaded brokers.</p>
-<p>When a broker is identifies as overloaded, it will force to &quot;unload&quot; a subset of the bundles, the
-ones with higher traffic, that make up for the overload percentage.</p>
-<p>For example, the default threshold is 85% and if a broker is over quota at 95% CPU usage, then
-it will unload the percent difference plus a 5% margin: <code>(95% - 85%) + 5% = 15%</code>.</p>
-<p>Given the selection of bundles to offload is based on traffic (as a proxy measure for cpu, network
-and memory), broker will unload bundles for at least 15% of traffic.</p>
-<p>The automatic load shedding is enabled by default and can be disabled with this setting:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Enable/disable automatic bundle unloading for load-shedding</span>
-<span class="hljs-attr">loadBalancerSheddingEnabled</span>=<span class="hljs-literal">true</span>
-</code></pre>
-<p>There are additional settings that apply to shedding:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Load shedding interval. Broker periodically checks whether some traffic should be offload from</span>
-<span class="hljs-comment"># some over-loaded broker to other under-loaded brokers</span>
-<span class="hljs-attr">loadBalancerSheddingIntervalMinutes</span>=<span class="hljs-number">1</span>
-
-<span class="hljs-comment"># Prevent the same topics to be shed and moved to other brokers more that once within this timeframe</span>
-<span class="hljs-attr">loadBalancerSheddingGracePeriodMinutes</span>=<span class="hljs-number">30</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="broker-overload-thresholds"></a><a href="#broker-overload-thresholds" 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 12H [...]
-<p>The determinations of when a broker is overloaded is based on threshold of CPU, network and
-memory usage. Whenever either of those metrics reaches the threshold, it will trigger the shedding
-(if enabled).</p>
-<p>By default, overload threshold is set at 85%:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Usage threshold to determine a broker as over-loaded</span>
-<span class="hljs-attr">loadBalancerBrokerOverloadedThresholdPercentage</span>=<span class="hljs-number">85</span>
-</code></pre>
-<p>The usage stats are gathered by Pulsar from the system metrics.</p>
-<p>In case of network utilization, in some cases the network interface speed reported by Linux is
-not correct and needs to be manually overridden. This is the case in AWS EC2 instances with 1Gbps
-NIC speed for which the OS report 10Gbps speed.</p>
-<p>Because of the incorrect max speed, the Pulsar load manager might think the broker has not
-reached the NIC capacity, while in fact it's already using all the bandwidth and the traffic is
-being slowed down.</p>
-<p>There is a setting to correct the max NIC speed:</p>
-<pre><code class="hljs css languages- properties"># <span class="hljs-keyword">Override</span> the auto-detection <span class="hljs-keyword">of</span> the network interfaces max speed.
-# This option <span class="hljs-keyword">is</span> useful <span class="hljs-keyword">in</span> some environments (eg: EC2 VMs) <span class="hljs-keyword">where</span> the max speed
-# reported <span class="hljs-keyword">by</span> Linux <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> reflecting the real bandwidth available <span class="hljs-keyword">to</span> the broker.
-# Since the network usage <span class="hljs-keyword">is</span> employed <span class="hljs-keyword">by</span> the load manager <span class="hljs-keyword">to</span> decide when a broker
-# <span class="hljs-keyword">is</span> overloaded, it <span class="hljs-keyword">is</span> important <span class="hljs-keyword">to</span> make sure the info <span class="hljs-keyword">is</span> correct <span class="hljs-keyword">or</span> <span class="hljs-keyword">override</span> it
-# <span class="hljs-keyword">with</span> the right value here. The configured value can be a double (eg: <span class="hljs-number">0.8</span>) <span class="hljs-keyword">and</span> that
-# can be used <span class="hljs-keyword">to</span> trigger load-shedding even before hitting <span class="hljs-keyword">on</span> NIC limits.
-loadBalancerOverrideBrokerNicSpeedGbps=
-</code></pre>
-<p>When the value is empty, Pulsar will use the value reported by the OS.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-stats">← Pulsar stats</a><a class="docs-next button" href="/staging/docs/administration-proxy">The Pulsar proxy →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a href="#pulsar-load-manager-architecture">Pulsar load manager architecture</a><ul [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-load-distribution";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-load-distribution/index.html b/content/staging/docs/administration-load-distribution/index.html
index ac42f34..a64ee34 100644
--- a/content/staging/docs/administration-load-distribution/index.html
+++ b/content/staging/docs/administration-load-distribution/index.html
@@ -1,219 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar load distribution · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Load distribution across Pulsar brokers"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pulsar load distribution · Apache Pulsar"/><meta property="og:type [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-load-distribution.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Pulsar load distribution</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="load-distribution-across-pulsar-broke [...]
-<p>Pulsar is an horizontally scalable messaging system, so it is a core requirement that the traffic
-in a logical cluster must be spread across all the available Pulsar brokers, as evenly as possible.</p>
-<p>In most cases, this is true out of the box and one shouldn't worry about it. There are, though,
-multiple settings and tools to control the traffic distribution and they require a bit of
-context to understand how the traffic is managed in Pulsar.</p>
-<h2><a class="anchor" aria-hidden="true" id="pulsar-load-manager-architecture"></a><a href="#pulsar-load-manager-architecture" 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. [...]
-<h3><a class="anchor" aria-hidden="true" id="dynamic-assignment-of-topics-to-brokers"></a><a href="#dynamic-assignment-of-topics-to-brokers" 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  [...]
-<p>Topics are dynamically assigned to brokers based on the load conditions of all brokers in the
-cluster.</p>
-<p>When a clients starts using new topics that are not assigned to any broker, it will trigger a
-process that, given the load conditions, it will choose the best suited broker to acquire ownership
-of such topic.</p>
-<p>In case of partitioned topics, different partitions might be assigned to different brokers. We talk
-about &quot;topic&quot; in this context to mean either a non-partitioned topic or one partition of a topic.</p>
-<p>The assignment is &quot;dynamic&quot; because it can change very quickly. For example, if the broker owning
-the topic crashes, the topic will be reassigned immediately to another broker. Another scenario is
-that the broker owning the topic becomes overloaded. In this case too, the topic will be
-reassigned to a less loaded broker.</p>
-<p>The dynamic assignment is made possible by the stateless nature of brokers. This also ensure that
-we can quickly expand or shrink the cluster based on usage.</p>
-<h3><a class="anchor" aria-hidden="true" id="assignment-granularity"></a><a href="#assignment-granularity" 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 [...]
-<p>The assignment of topics/partitions to brokers is not done at the individual level. The reason for
-it is to amortize the amount of information that we need to keep track (eg. which topics are
-assigned to a particular broker, what's the load on topics for a broker and similar).</p>
-<p>Instead of individual topic/partition assignment, each broker takes ownership of a subset of the
-topics for a namespace. This subset is called a &quot;<em>bundle</em>&quot; and effectively it's a sharding
-mechanism.</p>
-<p>The namespace is the &quot;administrative&quot; unit: many config knobs or operations are done at the
-namespace level.</p>
-<p>For assignment, a namespaces is sharded into a list of &quot;bundles&quot;, with each bundle comprising
-a portion of overall hash range of the namespace.</p>
-<p>Topics are assigned to a particular bundle by taking the hash of the topic name and seeing in which
-bundle the hash falls into.</p>
-<p>Each bundle is independent of the others and thus is independently assigned to different brokers.</p>
-<h3><a class="anchor" aria-hidden="true" id="creating-namespaces-and-bundles"></a><a href="#creating-namespaces-and-bundles" 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 [...]
-<p>When creating a new namespace, it will set to use the default number of bundles. This is set in
-<code>conf/broker.conf</code>:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># When a namespace is created without specifying the number of bundle, this</span>
-<span class="hljs-comment"># value will be used as the default</span>
-<span class="hljs-attr">defaultNumberOfNamespaceBundles</span>=<span class="hljs-number">4</span>
-</code></pre>
-<p>One can either change the system default, or override it when creating a new namespace:</p>
-<pre><code class="hljs css languages- shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin namespaces create my-tenant/my-namespace --clusters us-west --bundles 16</span>
-</code></pre>
-<p>With this command, we're creating a namespace with 16 initial bundles. Therefore the topics for
-this namespaces can immediately be spread across up to 16 brokers.</p>
-<p>In general, if the expected traffic and number of topics is known in advance, it's a good idea to
-start with a reasonable number of bundles instead of waiting for the system to auto-correct the
-distribution.</p>
-<p>On a same note, it is normally beneficial to start with more bundles than number of brokers,
-primarily because of the hashing nature of the distribution of topics into bundles. For example,
-for a namespace with 1000 topics, using something like 64 bundles will achieve a good distribution
-of traffic across 16 brokers.</p>
-<h3><a class="anchor" aria-hidden="true" id="unloading-topics-and-bundles"></a><a href="#unloading-topics-and-bundles" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
-<p>In Pulsar there is an admin operation of &quot;unloading&quot; a topic. Unloading means to close the topics,
-release ownership and reassign the topics to a new broker, based on current load.</p>
-<p>When unload happens, the client will experience a small latency blip, typically in the order of
-tens of milliseconds, while the topic is reassigned.</p>
-<p>Unloading is the mechanism used by the load-manager to perform the load shedding, but it can
-also be triggered manually, for example to correct the assignments and redistribute traffic
-even before having any broker overloaded.</p>
-<p>Unloading a topic has no effect on the assignment, but it will just close and reopen the
-particular topic:</p>
-<pre><code class="hljs css languages- shell">pulsar-admin topics unload persistent://tenant/namespace/topic
-</code></pre>
-<p>To unload all topics for a namespace and trigger reassignments:</p>
-<pre><code class="hljs css languages- shell">pulsar-admin namespaces unload tenant/namespace
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="namespace-bundles-splitting"></a><a href="#namespace-bundles-splitting" 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 1 [...]
-<p>Since the load for the topics in a bundle might change over time, or could just be hard to predict
-upfront, bundles can be split in 2 by brokers. The new smaller bundles can then be reassigned
-to different brokers.</p>
-<p>The splitting happens based on some tunable thresholds. Any existing bundle that exceeds any
-of the threshold is a candidate to be split. By default the newly split bundles are also
-immediately offloaded to other brokers, to facilitate the traffic distribution.</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># enable/disable namespace bundle auto split</span>
-<span class="hljs-attr">loadBalancerAutoBundleSplitEnabled</span>=<span class="hljs-literal">true</span>
-
-<span class="hljs-comment"># enable/disable automatic unloading of split bundles</span>
-<span class="hljs-attr">loadBalancerAutoUnloadSplitBundlesEnabled</span>=<span class="hljs-literal">true</span>
-
-<span class="hljs-comment"># maximum topics in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxTopics</span>=<span class="hljs-number">1000</span>
-
-<span class="hljs-comment"># maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxSessions</span>=<span class="hljs-number">1000</span>
-
-<span class="hljs-comment"># maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxMsgRate</span>=<span class="hljs-number">30000</span>
-
-<span class="hljs-comment"># maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered</span>
-<span class="hljs-attr">loadBalancerNamespaceBundleMaxBandwidthMbytes</span>=<span class="hljs-number">100</span>
-
-<span class="hljs-comment"># maximum number of bundles in a namespace (for auto-split)</span>
-<span class="hljs-attr">loadBalancerNamespaceMaximumBundles</span>=<span class="hljs-number">128</span>
-</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="automatic-load-shedding"></a><a href="#automatic-load-shedding" 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 [...]
-<p>In Pulsar's load manager there is support for automatic load shedding. This means that whenever
-the system recognized a particular broker is overloaded, it will force some traffic to be
-reassigned to less loaded brokers.</p>
-<p>When a broker is identifies as overloaded, it will force to &quot;unload&quot; a subset of the bundles, the
-ones with higher traffic, that make up for the overload percentage.</p>
-<p>For example, the default threshold is 85% and if a broker is over quota at 95% CPU usage, then
-it will unload the percent difference plus a 5% margin: <code>(95% - 85%) + 5% = 15%</code>.</p>
-<p>Given the selection of bundles to offload is based on traffic (as a proxy measure for cpu, network
-and memory), broker will unload bundles for at least 15% of traffic.</p>
-<p>The automatic load shedding is enabled by default and can be disabled with this setting:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Enable/disable automatic bundle unloading for load-shedding</span>
-<span class="hljs-attr">loadBalancerSheddingEnabled</span>=<span class="hljs-literal">true</span>
-</code></pre>
-<p>There are additional settings that apply to shedding:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Load shedding interval. Broker periodically checks whether some traffic should be offload from</span>
-<span class="hljs-comment"># some over-loaded broker to other under-loaded brokers</span>
-<span class="hljs-attr">loadBalancerSheddingIntervalMinutes</span>=<span class="hljs-number">1</span>
-
-<span class="hljs-comment"># Prevent the same topics to be shed and moved to other brokers more that once within this timeframe</span>
-<span class="hljs-attr">loadBalancerSheddingGracePeriodMinutes</span>=<span class="hljs-number">30</span>
-</code></pre>
-<h4><a class="anchor" aria-hidden="true" id="broker-overload-thresholds"></a><a href="#broker-overload-thresholds" 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 12H [...]
-<p>The determinations of when a broker is overloaded is based on threshold of CPU, network and
-memory usage. Whenever either of those metrics reaches the threshold, it will trigger the shedding
-(if enabled).</p>
-<p>By default, overload threshold is set at 85%:</p>
-<pre><code class="hljs css languages- properties"><span class="hljs-comment"># Usage threshold to determine a broker as over-loaded</span>
-<span class="hljs-attr">loadBalancerBrokerOverloadedThresholdPercentage</span>=<span class="hljs-number">85</span>
-</code></pre>
-<p>The usage stats are gathered by Pulsar from the system metrics.</p>
-<p>In case of network utilization, in some cases the network interface speed reported by Linux is
-not correct and needs to be manually overridden. This is the case in AWS EC2 instances with 1Gbps
-NIC speed for which the OS report 10Gbps speed.</p>
-<p>Because of the incorrect max speed, the Pulsar load manager might think the broker has not
-reached the NIC capacity, while in fact it's already using all the bandwidth and the traffic is
-being slowed down.</p>
-<p>There is a setting to correct the max NIC speed:</p>
-<pre><code class="hljs css languages- properties"># <span class="hljs-keyword">Override</span> the auto-detection <span class="hljs-keyword">of</span> the network interfaces max speed.
-# This option <span class="hljs-keyword">is</span> useful <span class="hljs-keyword">in</span> some environments (eg: EC2 VMs) <span class="hljs-keyword">where</span> the max speed
-# reported <span class="hljs-keyword">by</span> Linux <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> reflecting the real bandwidth available <span class="hljs-keyword">to</span> the broker.
-# Since the network usage <span class="hljs-keyword">is</span> employed <span class="hljs-keyword">by</span> the load manager <span class="hljs-keyword">to</span> decide when a broker
-# <span class="hljs-keyword">is</span> overloaded, it <span class="hljs-keyword">is</span> important <span class="hljs-keyword">to</span> make sure the info <span class="hljs-keyword">is</span> correct <span class="hljs-keyword">or</span> <span class="hljs-keyword">override</span> it
-# <span class="hljs-keyword">with</span> the right value here. The configured value can be a double (eg: <span class="hljs-number">0.8</span>) <span class="hljs-keyword">and</span> that
-# can be used <span class="hljs-keyword">to</span> trigger load-shedding even before hitting <span class="hljs-keyword">on</span> NIC limits.
-loadBalancerOverrideBrokerNicSpeedGbps=
-</code></pre>
-<p>When the value is empty, Pulsar will use the value reported by the OS.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-stats">← Pulsar stats</a><a class="docs-next button" href="/staging/docs/administration-proxy">The Pulsar proxy →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#load-distribution-across-pulsar-brokers">Load distribution across Pulsar brokers</a></li><li><a href="#pulsar-load-manager-architecture">Pulsar load manager architecture</a><ul [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-load-distribution";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-proxy.html b/content/staging/docs/administration-proxy.html
index 9e0f741..2b191d1 100644
--- a/content/staging/docs/administration-proxy.html
+++ b/content/staging/docs/administration-proxy.html
@@ -1,125 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar proxy · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The [Pulsar proxy](/staging/docs/concepts-architecture#pulsar-proxy) is an optional gateway that you can run over the brokers in a Pulsar cluster. We recommend running a Pulsar proxy in cases when dir [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-                  target.classList.toggle(className);
-                };
-              }
-            });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/administration-proxy.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">The Pulsar proxy</h1></header><article><div><span><p>The <a href="/staging/docs/concepts-architecture#pulsar-proxy">Pulsar proxy</a> is an optional gate [...]
-<h2><a class="anchor" aria-hidden="true" id="running-the-proxy"></a><a href="#running-the-proxy" 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- [...]
-<p>In order to run the Pulsar proxy, you need to have both a local <a href="https://zookeeper.apache.org">ZooKeeper</a> and configuration store quorum set up for use by your Pulsar cluster. For instructions, see <a href="/staging/docs/deploy-bare-metal">this document</a>. Once you have ZooKeeper set up and have connection strings for both ZooKeeper quorums, you can use the <a href="/staging/docs/reference-cli-tools#pulsar-proxy"><code>proxy</code></a> command of the <a href="/staging/doc [...]
-<p>To start the proxy:</p>
-<pre><code class="hljs css languages- bash">$ <span class="hljs-built_in">cd</span> /path/to/pulsar/directory
-$ bin/pulsar proxy \
-  --zookeeper-servers zk-0,zk-1,zk-2 \
-  --global-zookeeper-servers zk-0,zk-1,zk-2
-</code></pre>
-<blockquote>
-<p>You can run as many instances of the Pulsar proxy in a cluster as you would like.</p>
-</blockquote>
-<h2><a class="anchor" aria-hidden="true" id="stopping-the-proxy"></a><a href="#stopping-the-proxy" 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- [...]
-<p>The Pulsar proxy runs by default in the foreground. To stop the proxy, simply stop the process in which it's running.</p>
-<h2><a class="anchor" aria-hidden="true" id="proxy-frontends"></a><a href="#proxy-frontends" 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  [...]
-<p>We recommend running the Pulsar proxy behind some kind of load-distributing frontend, such as an <a href="https://www.digitalocean.com/community/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts">HAProxy</a> load balancer.</p>
-<h2><a class="anchor" aria-hidden="true" id="using-pulsar-clients-with-the-proxy"></a><a href="#using-pulsar-clients-with-the-proxy" 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 [...]
-<p>Once your Pulsar proxy is up and running, preferably behind a load-distributing <a href="#proxy-frontends">frontend</a>, clients can connect to the proxy via whichever address is used by the frontend. If the address were the DNS address <code>pulsar.cluster.default</code>, for example, then the connection URL for clients would be <code>pulsar://pulsar.cluster.default:6650</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="proxy-configuration"></a><a href="#proxy-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.2 [...]
-<p>The Pulsar proxy can be configured using the <a href="/staging/docs/reference-configuration#proxy"><code>proxy.conf</code></a> configuration file. The following parameters are available in that file:</p>
-<table>
-<thead>
-<tr><th>Name</th><th>Description</th><th>Default</th></tr>
-</thead>
-<tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>10000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
-</tbody>
-</table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/staging/docs/administration-load-distribution">← Pulsar load distribution</a><a class="docs-next button" href="/staging/docs/security-overview">Pulsar Security Overview →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy">Stopping the proxy</a></li><li><a href="#proxy-frontends">Proxy fron [...]
-      const community = document.querySelector("a[href='#community']").parentNode;
-      const communityMenu = 
-        '<li>' +
-        '<a id="community-menu" href="#">Community</a>' + 
-        '<div id="community-dropdown" class="hide">' +
-          '<ul id="community-dropdown-items">' +
-            '<li><a href="/staging/contact">Contant</a></li>' +
-            '<li><a href="/staging/events">Events</a></li>' +
-            '<li><a href="https://twitter.com/Apache_Pulsar">Twitter</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/wiki">Wiki</a></li>' +
-            '<li><a href="https://github.com/apache/incubator-pulsar/issues">Issue tracking</a></li>' +
-            '<li><a href="/staging/resources">Resources</a></li>' +
-            '<li><a href="/staging/team">Team</a></li>' +
-          '</ul>' +
-        '</div>' +
-        '</li>';
-
-      community.innerHTML = communityMenu;
-
-      const communityMenuItem = document.getElementById("community-menu");
-      const communityDropDown = document.getElementById("community-dropdown");
-      communityMenuItem.addEventListener("click", function(event) {
-        event.preventDefault();
-
-        if (communityDropDown.className == 'hide') {
-          communityDropDown.className = 'visible';
-        } else {
-          communityDropDown.className = 'hide';
-        }
-      });
-    </script></span><span><script src="/staging/js/pjax-api.min.js"></script><script>window.navfoo = new Pjax({
-            areas: [
-              // try to use the first query.
-              '.mainContainer, .docsNavContainer .toc .navWrapper, .onPageNav',
-              // fallback
-              'body'
-            ],
-            link: '.docsNavContainer:not(.docsSliderActive) a',
-            update: {
-              script: false,
-            }
-          });
-        </script></span></footer></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script><script>
-              var search = docsearch({
-                
-                apiKey: 'd226a455cecdd4bc18a554c1b47e5b52',
-                indexName: 'apache_pulsar',
-                inputSelector: '#search_input_react'
-              });
-            </script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · </title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content=""/><meta property="og:title" content="Apache Pulsar · "/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/staging/index.html"/><meta property="og:description" con [...]
+                <!--
+                window.location.href = "/staging/docs/en/administration-proxy";
+                // -->
+                </script></body></html>
\ No newline at end of file
diff --git a/content/staging/docs/administration-proxy/index.html b/content/staging/docs/administration-proxy/index.html
index 9e0f741..2b191d1 100644
--- a/content/staging/docs/administration-proxy/index.html
+++ b/content/staging/docs/administration-proxy/index.html
@@ -1,125 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>The Pulsar proxy · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The [Pulsar proxy](/staging/docs/concepts-architecture#pulsar-proxy) is an optional gateway that you can run over the brokers in a Pulsar cluster. We recommend running a Pulsar proxy in cases when dir [...]
-            document.addEventListener('DOMContentLoaded', function() {
-              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
-              createToggler('#tocToggler', 'body', 'tocActive');
-
-              const headings = document.querySelector('.toc-headings');
-              headings && headings.addEventListener('click', function(event) {
-                if (event.target.tagName === 'A') {
-                  document.body.classList.remove('tocActive');
-                }
-              }, false);
-
-              function createToggler(togglerSelector, targetSelector, className) {
-                var toggler = document.querySelector(togglerSelector);
-                var target = document.querySelector(targetSelector);
-
-                toggler.onclick = function(event) {
-                  event.preventDefault();
-
-