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

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 0917f8e  [Doc] Add *How to Use Pulsar Connectors* Guide (#5071)
0917f8e is described below

commit 0917f8ef6dfd914a4188f2d5996292d926acba3f
Author: Anonymitaet <[email protected]>
AuthorDate: Tue Sep 3 02:30:56 2019 +0800

    [Doc] Add *How to Use Pulsar Connectors* Guide (#5071)
---
 site2/docs/io-use.md        | 1504 +++++++++++++++++++++++++++++++++++++++++++
 site2/website/sidebars.json |    5 +-
 2 files changed, 1507 insertions(+), 2 deletions(-)

diff --git a/site2/docs/io-use.md b/site2/docs/io-use.md
new file mode 100644
index 0000000..4cbf69d
--- /dev/null
+++ b/site2/docs/io-use.md
@@ -0,0 +1,1504 @@
+---
+id: io-use
+title: How to use Pulsar connectors
+sidebar_label: Use
+---
+
+This guide describes how to use Pulsar connectors.
+
+## Install a connector
+
+Pulsar bundles several [builtin connectors](io-connectors.md) used to move 
data in and out of commonly used systems (such as database and messaging 
system). Optionally, you can create and use your desired non-builtin connectors.
+
+> #### Note
+> 
+> When using a non-builtin connector, you need to specify the path of a 
archive file for the connector.
+
+To set up a builtin connector, follow
+the instructions 
[here](getting-started-standalone.md#installing-builtin-connectors).
+
+After the setup, the builtin connector is automatically discovered by Pulsar 
brokers (or function-workers), so no additional installation steps are required.
+
+## Configure a connector
+
+You can configure the following information:
+
+* [Configure a default storage location for a 
connector](#configure-a-default-storage-location-for-a-connector)
+
+* [Configure a connector with a YAML 
file](#configure-a-connector-with-yaml-file)
+
+### Configure a default storage location for a connector
+
+To configure a default folder for builtin connectors, set the 
`connectorsDirectory` parameter in the `./conf/functions_worker.yml` 
configuration file.
+
+**Example**
+
+Set the `./connectors` folder as the default storage location for builtin 
connectors.
+
+```
+########################
+# Connectors
+########################
+
+connectorsDirectory: ./connectors
+```
+
+### Configure a connector with a YAML file
+
+To configure a connector, you need to provide a YAML configuration file when 
creating a connector.
+
+The YAML configuration file tells Pulsar where to locate connectors and how to 
connect connectors with Pulsar topics.
+
+**Example 1**
+
+Below is a YAML configuration file of a Cassandra sink, which tells Pulsar:
+
+* Which Cassandra cluster to connect
+  
+* What is the `keyspace` and `columnFamily` to be used in Cassandra for 
collecting data
+  
+* How to map Pulsar messages into Cassandra table key and columns
+
+```shell
+tenant: public
+namespace: default
+name: cassandra-test-sink
+...
+# cassandra specific config
+configs:
+    roots: "localhost:9042"
+    keyspace: "pulsar_test_keyspace"
+    columnFamily: "pulsar_test_table"
+    keyname: "key"
+    columnName: "col"
+```
+
+**Example 2**
+
+Below is a YAML configuration file of a Kafka source.
+
+```shell
+configs:
+   bootstrapServers: "pulsar-kafka:9092"
+   groupId: "test-pulsar-io"
+   topic: "my-topic"
+   sessionTimeoutMs: "10000"
+   autoCommitEnabled: "false"
+```
+
+**Example 3**
+
+Below is a YAML configuration file of a MySQL JDBC sink.
+
+```shell
+configs:
+   userName: "root"
+   password: "jdbc"
+   jdbcUrl: "jdbc:mysql://127.0.0.1:3306/test_jdbc"
+   tableName: "test_jdbc"
+```
+
+## Get available connectors
+
+Before starting using connectors, you can perform the following operations:
+
+* [Reload connectors](#reload)
+  
+* [Get a list of available connectors](#get-available-connectors)
+
+### `reload`
+
+If you add or delete a nar file in a connector folder, reload the available 
builtin connector before using it.
+
+#### Source
+
+Use the `reload` subcommand.
+
+```shell
+$ pulsar-admin sources reload
+```
+
+For more information, see [`here`](reference-connector-admin/#reload).
+
+#### Sink
+
+Use the `reload` subcommand.
+
+```shell
+$ pulsar-admin sinks reload
+```
+
+For more information, see [`here`](reference-connector-admin/#reload-1).
+
+### `available`
+
+After reloading connectors (optional), you can get a list of available 
connectors.
+
+#### Source
+
+Use the `available-sources` subcommand.
+
+```shell
+$ pulsar-admin sources available-sources
+```
+
+#### Sink
+
+Use the `available-sinks` subcommand.
+
+```shell
+$ pulsar-admin sinks available-sinks
+```
+
+## Run a connector
+
+To run a connector, you can perform the following operations:
+
+* [Create a connector](#create)
+  
+* [Start a connector](#start)
+
+* [Run a connector locally](#localrun)
+
+### `create`
+
+You can create a connector using **Admin CLI**, **REST API** or **JAVA admin 
API**.
+
+#### Source
+
+Create a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `create` subcommand.
+
+```
+$ pulsar-admin sources create options
+```
+
+For more information, see [here](reference-connector-admin.md#create).
+
+<!--REST API-->
+
+Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/registerSource}
+
+<!--Java Admin API-->
+
+* Create a source connector with a **local file**.
+
+    ```java
+    void createSource(SourceConfig sourceConfig,
+                      String fileName)
+               throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    |Name|Description
+    |---|---
+    `sourceConfig` | The source configuration object
+
+   **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`createSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#createSource-SourceConfig-java.lang.String-).
+
+* Create a source connector using a **remote file** with a URL from which 
fun-pkg can be downloaded. 
+
+    ```java
+    void createSourceWithUrl(SourceConfig sourceConfig,
+                             String pkgUrl)
+                      throws PulsarAdminException
+    ```
+
+    Supported URLs are `http` and `file`.
+
+    **Example**
+
+    * HTTP: http://www.repo.com/fileName.jar
+
+    * File: file:///dir/fileName.jar
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `sourceConfig` | The source configuration object
+    `pkgUrl` | URL from which pkg can be downloaded
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+  
+    For more information, see 
[`createSourceWithUrl`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#createSourceWithUrl-SourceConfig-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Create a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `create` subcommand.
+
+```
+$ pulsar-admin sinks create options
+```
+
+For more information, see [here](reference-connector-admin.md#create-1).
+
+<!--REST API-->
+
+Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sinks/:tenant/:namespace/:sinkName|operation/registerSink}
+
+<!--Java Admin API-->
+
+* Create a sink connector with a **local file**.
+  
+    ```java
+    void createSink(SinkConfig sinkConfig,
+                    String fileName)
+             throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    |Name|Description
+    |---|---
+    `sinkConfig` | The sink configuration object
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`createSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#createSink-SinkConfig-java.lang.String-).
+
+* Create a sink connector using a **remote file** with a URL from which 
fun-pkg can be downloaded. 
+
+    ```java
+    void createSinkWithUrl(SinkConfig sinkConfig,
+                        String pkgUrl)
+                    throws PulsarAdminException
+    ```
+
+    Supported URLs are `http` and `file`.
+
+    **Example**
+
+    * HTTP: http://www.repo.com/fileName.jar
+
+    * File: file:///dir/fileName.jar
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `sinkConfig` | The sink configuration object
+    `pkgUrl` | URL from which pkg can be downloaded
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+  
+    For more information, see 
[`createSinkWithUrl`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#createSinkWithUrl-SinkConfig-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+### `start`
+
+You can start a connector using **Admin CLI** or **REST API**.
+
+#### Source
+
+Start a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `start` subcommand.
+
+```
+$ pulsar-admin sources start options
+```
+
+For more information, see [here](reference-connector-admin.md#start).
+
+<!--REST API-->
+
+* Start **all** source connectors.
+
+    Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/start|operation/startSource}
+
+* Start a **specified** source connector.
+
+    Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId/start|operation/startSource}
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Start a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `start` subcommand.
+
+```
+$ pulsar-admin sinks start options
+```
+
+For more information, see [here](reference-connector-admin.md#start-1).
+
+<!--REST API-->
+
+* Start **all** sink connectors.
+
+    Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkName/start|operation/startSink}
+
+* Start a **specified** sink connector.
+
+    Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sinks/:tenant/:namespace/:sourceName/:instanceId/start|operation/startSink}
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+### `localrun`
+
+You can run a connector locally rather than deploying it on a Pulsar cluster 
using **Admin CLI**.
+
+#### Source
+
+Run a source connector locally.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `localrun` subcommand.
+
+```
+$ pulsar-admin sources localrun options
+```
+
+For more information, see [here](reference-connector-admin.md#localrun).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Run a sink connector locally.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `localrun` subcommand.
+
+```
+$ pulsar-admin sinks localrun options
+```
+
+For more information, see [here](reference-connector-admin.md#localrun-1).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Monitor a connector
+
+To monitor a connector, you can perform the following operations:
+
+* [Get the information of a connector](#get)
+
+* [Get the list of all running connectors](#list)
+
+* [Get the current status of a connector](#status)
+
+### `get`
+
+You can get the information of a connector using **Admin CLI**, **REST API** 
or **JAVA admin API**.
+
+#### Source
+
+Get the information of a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `get` subcommand.
+
+```
+$ pulsar-admin sources get options
+```
+
+For more information, see [here](reference-connector-admin.md#get).
+
+<!--REST API-->
+
+Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/getSourceInfo}
+
+<!--Java Admin API-->
+
+```java
+SourceConfig getSource(String tenant,
+                       String namespace,
+                       String source)
+                throws PulsarAdminException
+```
+
+**Example**
+
+This is a sourceConfig.
+
+```java
+{
+ "tenant": "tenantName",
+ "namespace": "namespaceName",
+ "name": "sourceName",
+ "className": "className",
+ "topicName": "topicName",
+ "configs": {},
+ "parallelism": 1,
+ "processingGuarantees": "ATLEAST_ONCE",
+ "resources": {
+   "cpu": 1.0,
+   "ram": 1073741824,
+   "disk": 10737418240
+ }
+}
+```
+
+This is a sourceConfig example.
+
+```
+{
+ "tenant": "public",
+ "namespace": "default",
+ "name": "debezium-mysql-source",
+ "className": "org.apache.pulsar.io.debezium.mysql.DebeziumMysqlSource",
+ "topicName": "debezium-mysql-topic",
+ "configs": {
+   "database.user": "debezium",
+   "database.server.id": "184054",
+   "database.server.name": "dbserver1",
+   "database.port": "3306",
+   "database.hostname": "localhost",
+   "database.password": "dbz",
+   "database.history.pulsar.service.url": "pulsar://127.0.0.1:6650",
+   "value.converter": "org.apache.kafka.connect.json.JsonConverter",
+   "database.whitelist": "inventory",
+   "key.converter": "org.apache.kafka.connect.json.JsonConverter",
+   "database.history": "org.apache.pulsar.io.debezium.PulsarDatabaseHistory",
+   "pulsar.service.url": "pulsar://127.0.0.1:6650",
+   "database.history.pulsar.topic": "history-topic2"
+ },
+ "parallelism": 1,
+ "processingGuarantees": "ATLEAST_ONCE",
+ "resources": {
+   "cpu": 1.0,
+   "ram": 1073741824,
+   "disk": 10737418240
+ }
+}
+```
+
+**Exception**
+
+Exception name | Description
+|---|---
+`PulsarAdminException.NotAuthorizedException` | You don't have the admin 
permission 
+`PulsarAdminException.NotFoundException` | Cluster doesn't exist
+`PulsarAdminException` | Unexpected error
+
+For more information, see 
[`getSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#getSource-java.lang.String-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Get the information of a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `get` subcommand.
+
+```
+$ pulsar-admin sinks get options
+```
+
+For more information, see [here](reference-connector-admin.md#get-1).
+
+<!--REST API-->
+
+Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sinks/:tenant/:namespace/:sinkName|operation/getSinkInfo}
+
+<!--Java Admin API-->
+
+```java
+SinkConfig getSink(String tenant,
+                   String namespace,
+                   String sink)
+            throws PulsarAdminException
+```
+
+**Example**
+
+This is a sinkConfig.
+
+```
+{
+"tenant": "tenantName",
+"namespace": "namespaceName",
+"name": "sinkName",
+"className": "className",
+"inputSpecs": {
+"topicName": {
+    "isRegexPattern": false
+}
+},
+"configs": {},
+"parallelism": 1,
+"processingGuarantees": "ATLEAST_ONCE",
+"retainOrdering": false,
+"autoAck": true
+}
+```
+
+This is a sinkConfig example.
+
+```  
+{
+"tenant": "public",
+"namespace": "default",
+"name": "pulsar-mysql-jdbc-sink",
+"className": "org.apache.pulsar.io.jdbc.JdbcAutoSchemaSink",
+"inputSpecs": {
+"pulsar-mysql-jdbc-sink-topic": {
+    "isRegexPattern": false
+}
+},
+"configs": {
+"password": "jdbc",
+"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/pulsar_mysql_jdbc_sink",
+"userName": "root",
+"tableName": "pulsar_mysql_jdbc_sink"
+},
+"parallelism": 1,
+"processingGuarantees": "ATLEAST_ONCE",
+"retainOrdering": false,
+"autoAck": true
+}
+```
+
+**Parameter description**
+
+Name| Description
+|---|---
+`tenant` | Tenant name
+`namespace` | Namespace name
+`sink` | Sink name
+
+For more information, see 
[`getSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#getSink-java.lang.String-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+### `list`
+
+You can get the list of all running connectors using **Admin CLI**, **REST 
API** or **JAVA admin API**.
+
+#### Source
+
+Get the list of all running source connectors.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `list` subcommand.
+
+```
+$ pulsar-admin sources list options
+```
+
+For more information, see [here](reference-connector-admin.md#list).
+
+<!--REST API-->
+
+Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sources/:tenant/:namespace/|operation/listSources}
+
+<!--Java Admin API-->
+
+```java
+List<String> listSources(String tenant,
+                         String namespace)
+                  throws PulsarAdminException
+```
+
+**Response example**
+
+```java
+["f1", "f2", "f3"]
+```
+
+**Exception**
+
+Exception name | Description
+|---|---
+`PulsarAdminException.NotAuthorizedException` | You don't have the admin 
permission
+`PulsarAdminException` | Unexpected error
+
+For more information, see 
[`listSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#listSources-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Get the list of all running sink connectors.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `list` subcommand.
+
+```
+$ pulsar-admin sinks list options
+```
+
+For more information, see [here](reference-connector-admin.md#list-1).
+
+<!--REST API-->
+
+Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sinks/:tenant/:namespace/|operation/listSinks}
+
+<!--Java Admin API-->
+
+```java
+List<String> listSinks(String tenant,
+                       String namespace)
+                throws PulsarAdminException
+```
+
+**Response example**
+
+```java
+["f1", "f2", "f3"]
+```
+
+**Exception**
+
+Exception name | Description
+|---|---
+`PulsarAdminException.NotAuthorizedException` | You don't have the admin 
permission 
+`PulsarAdminException` | Unexpected error
+
+For more information, see 
[`listSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#listSinks-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+### `status`
+
+You can get the current status of a connector using **Admin CLI**, **REST 
API** or **JAVA admin API**.
+
+#### Source
+
+Get the current status of a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `status` subcommand.
+
+```
+$ pulsar-admin sources status options
+```
+
+For more information, see [here](reference-connector-admin.md#status).
+
+<!--REST API-->
+
+* Get the current status of **all** source connectors.
+  
+  Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sources/:tenant/:namespace/:sourceName/status|operation/getSourceStatus}
+
+* Gets the current status of a **specified** source connector.
+
+  Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId/status|operation/getSourceStatus}
+  
+<!--Java Admin API-->
+
+* Get the current status of **all** source connectors.
+
+    ```java
+    SourceStatus getSourceStatus(String tenant,
+                                String namespace,
+                                String source)
+                        throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `sink` | Source name
+
+    **Exception**
+
+    Name | Description
+    |---|---
+    `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`getSourceStatus`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#getSource-java.lang.String-java.lang.String-java.lang.String-).
+
+* Gets the current status of a **specified** source connector.
+
+    ```java
+    SourceStatus.SourceInstanceStatus.SourceInstanceStatusData 
getSourceStatus(String tenant,
+                                                                               
String namespace,
+                                                                               
String source,
+                                                                               
int id)
+                                                                        throws 
PulsarAdminException
+    ```
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `sink` | Source name
+    `id` | Source instanceID
+
+    **Exception**
+
+    Exception name | Description
+    |---|---
+    `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`getSourceStatus`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#getSourceStatus-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Get the current status of a Pulsar sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `status` subcommand.
+
+```
+$ pulsar-admin sinks status options
+```
+
+For more information, see [here](reference-connector-admin.md#status-1).
+
+<!--REST API-->
+
+* Get the current status of **all** sink connectors.
+  
+  Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sinks/:tenant/:namespace/:sinkName/status|operation/getSinkStatus}
+
+* Gets the current status of a **specified** sink connector.
+
+  Send a `GET` request to this endpoint: {@inject: 
endpoint|GET|/admin/v3/sinks/:tenant/:namespace/:sourceName/:instanceId/status|operation/getSinkInstanceStatus}
+
+<!--Java Admin API-->
+
+* Get the current status of **all** sink connectors.
+
+    ```java
+    SinkStatus getSinkStatus(String tenant,
+                             String namespace,
+                             String sink)
+                      throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `sink` | Source name
+
+    **Exception**
+
+    Exception name | Description
+    |---|---
+    `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`getSinkStatus`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-).
+
+* Gets the current status of a **specified** source connector.
+
+    ```java
+    SinkStatus.SinkInstanceStatus.SinkInstanceStatusData getSinkStatus(String 
tenant,
+                                                                       String 
namespace,
+                                                                       String 
sink,
+                                                                       int id)
+                                                                throws 
PulsarAdminException
+    ```
+
+    **Parameter**
+
+    Parameter| Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `sink` | Source name
+    `id` | Sink instanceID
+
+    **Exception**
+
+    Exception name | Description
+    |---|---
+    `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`getSinkStatusWithInstanceID`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#getSinkStatus-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Update a connector
+
+### `update`
+
+You can update a running connector using **Admin CLI**, **REST API** or **JAVA 
admin API**.
+
+#### Source
+
+Update a running Pulsar source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `update` subcommand.
+
+```
+$ pulsar-admin sources update options
+```
+
+For more information, see [here](reference-connector-admin.md#update).
+
+<!--REST API-->
+
+Send a `PUT` request to this endpoint: {@inject: 
endpoint|PUT|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/updateSource}
+  
+<!--Java Admin API-->
+
+* Update a running source connector with a **local file**.
+
+    ```java
+    void updateSource(SourceConfig sourceConfig,
+                    String fileName)
+            throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    |`sourceConfig` | The source configuration object
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    |`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission 
+    | `PulsarAdminException.NotFoundException` | Cluster doesn't exist
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`updateSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#updateSource-SourceConfig-java.lang.String-).
+
+* Update a source connector using a **remote file** with a URL from which 
fun-pkg can be downloaded. 
+
+    ```java
+    void updateSourceWithUrl(SourceConfig sourceConfig,
+                         String pkgUrl)
+                  throws PulsarAdminException
+    ```
+
+    Supported URLs are `http` and `file`.
+
+    **Example**
+
+    * HTTP: http://www.repo.com/fileName.jar
+
+    * File: file:///dir/fileName.jar
+  
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    | `sourceConfig` | The source configuration object
+    | `pkgUrl` | URL from which pkg can be downloaded
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    |`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission 
+    | `PulsarAdminException.NotFoundException` | Cluster doesn't exist
+    | `PulsarAdminException` | Unexpected error
+
+For more information, see 
[`createSourceWithUrl`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#updateSourceWithUrl-SourceConfig-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Update a running Pulsar sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `update` subcommand.
+
+```
+$ pulsar-admin sinks update options
+```
+
+For more information, see [here](reference-connector-admin.md#update-1).
+
+<!--REST API-->
+
+Send a `PUT` request to this endpoint: {@inject: 
endpoint|PUT|/admin/v3/sinks/:tenant/:namespace/:sinkName|operation/updateSink}
+  
+<!--Java Admin API-->
+
+* Update a running sink connector with a **local file**.
+
+    ```java
+    void updateSink(SinkConfig sinkConfig,
+                    String fileName)
+         throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    |`sinkConfig` | The sink configuration object
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    |`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission
+    | `PulsarAdminException.NotFoundException` | Cluster doesn't exist
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`updateSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#updateSink-SinkConfig-java.lang.String-).
+
+* Update a sink connector using a **remote file** with a URL from which 
fun-pkg can be downloaded. 
+
+    ```java
+    void updateSinkWithUrl(SinkConfig sinkConfig,
+                           String pkgUrl)
+                    throws PulsarAdminException
+    ```
+
+    Supported URLs are `http` and `file`.
+
+    **Example**
+
+    * HTTP: http://www.repo.com/fileName.jar
+
+    * File: file:///dir/fileName.jar
+  
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    | `sinkConfig` | The sink configuration object
+    | `pkgUrl` | URL from which pkg can be downloaded
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    |`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission 
+    |`PulsarAdminException.NotFoundException` | Cluster doesn't exist
+    |`PulsarAdminException` | Unexpected error
+
+For more information, see 
[`updateSinkWithUrl`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#updateSinkWithUrl-SinkConfig-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Stop a connector
+
+### `stop`
+
+You can stop a connector using **Admin CLI**, **REST API** or **JAVA admin 
API**.
+
+#### Source
+
+Stop a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `stop` subcommand.
+
+```
+$ pulsar-admin sources stop options
+```
+
+For more information, see [here](reference-connector-admin.md#stop).
+
+<!--REST API-->
+
+* Stop **all** source connectors.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/stopSource}
+
+* Stop a **specified** source connector.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId|operation/stopSource}
+
+<!--Java Admin API-->
+
+* Stop **all** source connectors.
+
+    ```java
+    void stopSource(String tenant,
+                    String namespace,
+                    String source)
+            throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`stopSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-).
+
+* Stop a **specified** source connector. 
+
+    ```java
+    void stopSource(String tenant,
+                    String namespace,
+                    String source,
+                    int instanceId)
+             throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+     `instanceId` | Source instanceID
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`stopSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#stopSource-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Stop a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `stop` subcommand.
+
+```
+$ pulsar-admin sinks stop options
+```
+
+For more information, see [here](reference-connector-admin.md#stop-1).
+
+<!--REST API-->
+
+* Stop **all** sink connectors.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sinks/:tenant/:namespace/:sinkName/stop|operation/stopSink}
+
+* Stop a **specified** sink connector.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkeName/:instanceId/stop|operation/stopSink}
+
+<!--Java Admin API-->
+
+* Stop **all** sink connectors.
+
+    ```java
+    void stopSink(String tenant,
+                String namespace,
+                String sink)
+        throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`stopSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-).
+
+* Stop a **specified** sink connector. 
+
+    ```java
+    void stopSink(String tenant,
+                  String namespace,
+                  String sink,
+                  int instanceId)
+           throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+    `instanceId` | Source instanceID
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`stopSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#stopSink-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Restart a connector
+
+### `restart`
+
+You can restart a connector using **Admin CLI**, **REST API** or **JAVA admin 
API**.
+
+#### Source
+
+Restart a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `restart` subcommand.
+
+```
+$ pulsar-admin sources restart options
+```
+
+For more information, see [here](reference-connector-admin.md#restart).
+
+<!--REST API-->
+
+* Restart **all** source connectors.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/restart|operation/restartSource}
+
+* Restart a **specified** source connector.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sourceName/:instanceId/restart|operation/restartSource}
+
+<!--Java Admin API-->
+
+* Restart **all** source connectors.
+
+    ```java
+    void restartSource(String tenant,
+                       String namespace,
+                       String source)
+                throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`restartSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-).
+
+* Restart a **specified** source connector. 
+
+    ```java
+    void restartSource(String tenant,
+                       String namespace,
+                       String source,
+                       int instanceId)
+                throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+     `instanceId` | Source instanceID
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`restartSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#restartSource-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Restart a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `restart` subcommand.
+
+```
+$ pulsar-admin sinks restart options
+```
+
+For more information, see [here](reference-connector-admin.md#restart-1).
+
+<!--REST API-->
+
+* Restart **all** sink connectors.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkName/restart|operation/restartSource}
+
+* Restart a **specified** sink connector.
+  
+  Send a `POST` request to this endpoint: {@inject: 
endpoint|POST|/admin/v3/sources/:tenant/:namespace/:sinkName/:instanceId/restart|operation/restartSource}
+
+<!--Java Admin API-->
+
+* Restart all Pulsar sink connectors.
+
+    ```java
+    void restartSink(String tenant,
+                     String namespace,
+                     String sink)
+              throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `sink` | Sink name
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`restartSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-).
+
+* Restart a **specified** sink connector. 
+
+    ```java
+    void restartSink(String tenant,
+                     String namespace,
+                     String sink,
+                     int instanceId)
+              throws PulsarAdminException
+    ```
+
+    **Parameter**
+
+    | Name | Description
+    |---|---
+    `tenant` | Tenant name
+    `namespace` | Namespace name
+    `source` | Source name
+     `instanceId` | Sink instanceID
+
+    **Exception**
+
+    |Name|Description|
+    |---|---
+    | `PulsarAdminException` | Unexpected error
+
+    For more information, see 
[`restartSink`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#restartSink-java.lang.String-java.lang.String-java.lang.String-int-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+## Delete a connector
+
+### `delete`
+
+You can delete a connector using **Admin CLI**, **REST API** or **JAVA admin 
API**.
+
+#### Source
+
+Delete a source connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `delete` subcommand.
+
+```
+$ pulsar-admin sources delete options
+```
+
+For more information, see [here](reference-connector-admin.md#delete).
+
+<!--REST API-->
+
+Delete al Pulsar source connector.
+  
+Send a `DELETE` request to this endpoint: {@inject: 
endpoint|DELETE|/admin/v3/sources/:tenant/:namespace/:sourceName|operation/deregisterSource}
+
+<!--Java Admin API-->
+
+Delete a source connector.
+
+```java
+void deleteSource(String tenant,
+                  String namespace,
+                  String source)
+           throws PulsarAdminException
+```
+
+**Parameter**
+
+| Name | Description
+|---|---
+`tenant` | Tenant name
+`namespace` | Namespace name
+`source` | Source name
+
+**Exception**
+
+|Name|Description|
+|---|---
+|`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission
+| `PulsarAdminException.NotFoundException` | Cluster doesn't exist
+| `PulsarAdminException.PreconditionFailedException` | Cluster is not empty
+| `PulsarAdminException` | Unexpected error
+
+For more information, see 
[`deleteSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Source.html#deleteSource-java.lang.String-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
+
+#### Sink
+
+Delete a sink connector.
+
+<!--DOCUSAURUS_CODE_TABS-->
+
+<!--Admin CLI-->
+
+Use the `delete` subcommand.
+
+```
+$ pulsar-admin sinks delete options
+```
+
+For more information, see [here](reference-connector-admin.md#delete-1).
+
+<!--REST API-->
+
+Delete a sink connector.
+  
+Send a `DELETE` request to this endpoint: {@inject: 
endpoint|DELETE|/admin/v3/sinks/:tenant/:namespace/:sinkName|operation/deregisterSink}
+
+<!--Java Admin API-->
+
+Delete a Pulsar sink connector.
+
+```java
+void deleteSink(String tenant,
+                String namespace,
+                String source)
+         throws PulsarAdminException
+```
+
+**Parameter**
+
+| Name | Description
+|---|---
+`tenant` | Tenant name
+`namespace` | Namespace name
+`sink` | Sink name
+
+**Exception**
+
+|Name|Description|
+|---|---
+|`PulsarAdminException.NotAuthorizedException`| You don't have the admin 
permission
+| `PulsarAdminException.NotFoundException` | Cluster doesn't exist
+| `PulsarAdminException.PreconditionFailedException` | Cluster is not empty
+| `PulsarAdminException` | Unexpected error
+
+For more information, see 
[`deleteSource`](https://pulsar.apache.org/api/admin/org/apache/pulsar/client/admin/Sink.html#deleteSink-java.lang.String-java.lang.String-java.lang.String-).
+
+<!--END_DOCUSAURUS_CODE_TABS-->
diff --git a/site2/website/sidebars.json b/site2/website/sidebars.json
index f1df01e..2d59e8c 100644
--- a/site2/website/sidebars.json
+++ b/site2/website/sidebars.json
@@ -53,10 +53,11 @@
     "Pulsar IO": [
       "io-overview",
       "io-quickstart",
-      "io-managing",
+      "io-use",
       "io-connectors",
       "io-develop",
-      "io-cdc"
+      "io-cdc",
+      "io-debug"
     ],
     "Pulsar SQL": [
       "sql-overview",

Reply via email to