Anonymitaet commented on a change in pull request #11258:
URL: https://github.com/apache/pulsar/pull/11258#discussion_r665984196



##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."

Review comment:
       ```suggestion
               value = "Pulsar cluster HTTP URL to connect to a broker."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."

Review comment:
       ```suggestion
               value = " Interval to print client stats (in second)."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."

Review comment:
       ```suggestion
               value = "Initial backoff interval (in nanosecond)."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."

Review comment:
       ```suggestion
               value = "Maximum times of redirected lookup requests."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."
+    )
     private long memoryLimitBytes = 0;
 
-    /** proxyServiceUrl and proxyProtocol must be mutually inclusive **/
+    @ApiModelProperty(
+            name = "proxyServiceUrl",
+            value = "Url of proxy Service, proxyServiceUrl and proxyProtocol 
must be mutually inclusive."

Review comment:
       ```suggestion
               value = "URL of proxy service. proxyServiceUrl and proxyProtocol 
must be mutually inclusive."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."

Review comment:
       ```suggestion
               value = "Number of connections established between the client 
and each Broker."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."

Review comment:
       ```suggestion
               value = "Client operation timeout (in millisecond)."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."

Review comment:
       ```suggestion
               value = "Authentication parameter of the client."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."

Review comment:
       od?

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."

Review comment:
       ```suggestion
               value = "The implementation class of ServiceUrlProvider used to 
generate ServiceUrl."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."

Review comment:
       ```suggestion
               value = "Limit of client memory usage (in byte)."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."

Review comment:
       ```suggestion
               value = "Whether to use TCP NoDelay option."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."

Review comment:
       ```suggestion
               value = "Maximum number of lookup requests allowed on "
                       + "each broker connection to prevent overloading a 
broker."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."

Review comment:
       ```suggestion
               value = "Listener name for lookup."
   ```
   
   is it correct?

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."

Review comment:
       ```suggestion
               value = "Maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
                       + "after the current connection is closed and the client 
"
                       + "creating a new connection to connect to a different 
broker."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."

Review comment:
       ```suggestion
               value = "TLS TrustStore type configuration. You need to set this 
configurationn when client authentication is required."
   ```
   
   do you mean this?

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."
+    )
     private long memoryLimitBytes = 0;
 
-    /** proxyServiceUrl and proxyProtocol must be mutually inclusive **/
+    @ApiModelProperty(
+            name = "proxyServiceUrl",
+            value = "Url of proxy Service, proxyServiceUrl and proxyProtocol 
must be mutually inclusive."
+    )
     private String proxyServiceUrl;
+
+    @ApiModelProperty(
+            name = "proxyProtocol",
+            value = "Protocol of proxy Service, proxyServiceUrl and 
proxyProtocol must be mutually inclusive."
+    )
     private ProxyProtocol proxyProtocol;
 
-    // transaction
+    @ApiModelProperty(
+            name = "enableTransaction",
+            value = "Whether to enable transaction."
+    )
     private boolean enableTransaction = false;
 
     @JsonIgnore
     private Clock clock = Clock.systemDefaultZone();
 
     // socks5
+    @ApiModelProperty(
+            name = "socks5ProxyAddress",
+            value = "Address of socks5 proxy."

Review comment:
       ```suggestion
               value = "Address of SOCKS5 proxy."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."

Review comment:
       ```suggestion
               value = "The TLS provider used by an internal client to 
authenticate with other Pulsar brokers."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."
+    )
     private long memoryLimitBytes = 0;
 
-    /** proxyServiceUrl and proxyProtocol must be mutually inclusive **/
+    @ApiModelProperty(
+            name = "proxyServiceUrl",
+            value = "Url of proxy Service, proxyServiceUrl and proxyProtocol 
must be mutually inclusive."
+    )
     private String proxyServiceUrl;
+
+    @ApiModelProperty(
+            name = "proxyProtocol",
+            value = "Protocol of proxy Service, proxyServiceUrl and 
proxyProtocol must be mutually inclusive."

Review comment:
       ```suggestion
               value = "Protocol of proxy service. proxyServiceUrl and 
proxyProtocol must be mutually inclusive."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."
+    )
     private long memoryLimitBytes = 0;
 
-    /** proxyServiceUrl and proxyProtocol must be mutually inclusive **/
+    @ApiModelProperty(
+            name = "proxyServiceUrl",
+            value = "Url of proxy Service, proxyServiceUrl and proxyProtocol 
must be mutually inclusive."
+    )
     private String proxyServiceUrl;
+
+    @ApiModelProperty(
+            name = "proxyProtocol",
+            value = "Protocol of proxy Service, proxyServiceUrl and 
proxyProtocol must be mutually inclusive."
+    )
     private ProxyProtocol proxyProtocol;
 
-    // transaction
+    @ApiModelProperty(
+            name = "enableTransaction",
+            value = "Whether to enable transaction."
+    )
     private boolean enableTransaction = false;
 
     @JsonIgnore
     private Clock clock = Clock.systemDefaultZone();
 
     // socks5
+    @ApiModelProperty(
+            name = "socks5ProxyAddress",
+            value = "Address of socks5 proxy."
+    )
     private InetSocketAddress socks5ProxyAddress;
+
+    @ApiModelProperty(
+            name = "socks5ProxyUsername",
+            value = "User name of socks5 proxy."

Review comment:
       same

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."
+    )
     private long maxBackoffIntervalNanos = TimeUnit.SECONDS.toNanos(60);
+
+    @ApiModelProperty(
+            name = "enableBusyWait",
+            value = "Whether to enable BusyWait for EpollEventLoopGroup."
+    )
     private boolean enableBusyWait = false;
-    //
+
+    @ApiModelProperty(
+            name = "listenerName",
+            value = "ListenerName for lookup."
+    )
     private String listenerName;
 
-    // set TLS using KeyStore way.
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "Set TLS using KeyStore way."
+    )
     private boolean useKeyStoreTls = false;
+    @ApiModelProperty(
+            name = "useKeyStoreTls",
+            value = "The TLS Provider used by internal client to authenticate 
with other Pulsar brokers."
+    )
     private String sslProvider = null;
-    // needed when client auth is required
+
+    @ApiModelProperty(
+            name = "tlsTrustStoreType",
+            value = "TLS TrustStore type configuration. Needed when client 
auth is required."
+    )
     private String tlsTrustStoreType = "JKS";
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePath",
+            value = "Path of TLS TrustStore."
+    )
     private String tlsTrustStorePath = null;
+
+    @ApiModelProperty(
+            name = "tlsTrustStorePassword",
+            value = "Password of TLS TrustStore."
+    )
     private String tlsTrustStorePassword = null;
+
+    @ApiModelProperty(
+            name = "tlsCiphers",
+            value = "Set of TLS Ciphers."
+    )
     private Set<String> tlsCiphers = Sets.newTreeSet();
+
+    @ApiModelProperty(
+            name = "tlsProtocols",
+            value = "Protocols of TLS."
+    )
     private Set<String> tlsProtocols = Sets.newTreeSet();
 
+    @ApiModelProperty(
+            name = "memoryLimitBytes",
+            value = "Limit the memory usage of client, the unit is Bytes."
+    )
     private long memoryLimitBytes = 0;
 
-    /** proxyServiceUrl and proxyProtocol must be mutually inclusive **/
+    @ApiModelProperty(
+            name = "proxyServiceUrl",
+            value = "Url of proxy Service, proxyServiceUrl and proxyProtocol 
must be mutually inclusive."
+    )
     private String proxyServiceUrl;
+
+    @ApiModelProperty(
+            name = "proxyProtocol",
+            value = "Protocol of proxy Service, proxyServiceUrl and 
proxyProtocol must be mutually inclusive."
+    )
     private ProxyProtocol proxyProtocol;
 
-    // transaction
+    @ApiModelProperty(
+            name = "enableTransaction",
+            value = "Whether to enable transaction."
+    )
     private boolean enableTransaction = false;
 
     @JsonIgnore
     private Clock clock = Clock.systemDefaultZone();
 
     // socks5
+    @ApiModelProperty(
+            name = "socks5ProxyAddress",
+            value = "Address of socks5 proxy."
+    )
     private InetSocketAddress socks5ProxyAddress;
+
+    @ApiModelProperty(
+            name = "socks5ProxyUsername",
+            value = "User name of socks5 proxy."
+    )
     private String socks5ProxyUsername;
+
+    @ApiModelProperty(
+            name = "socks5ProxyUsername",
+            value = "password of socks5 proxy."

Review comment:
       ```suggestion
               value = "Password of SOCKS5 proxy."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."
+    )
     private int concurrentLookupRequest = 5000;
+
+    @ApiModelProperty(
+            name = "maxLookupRequest",
+            value = "The maximum number of lookup requests allowed on "
+                    + "each broker connection to prevent overload on broker."
+    )
     private int maxLookupRequest = 50000;
+
+    @ApiModelProperty(
+            name = "maxLookupRedirects",
+            value = "Limit the number of times lookup requests are redirected."
+    )
     private int maxLookupRedirects = 20;
+
+    @ApiModelProperty(
+            name = "maxNumberOfRejectedRequestPerConnection",
+            value = "The maximum number of rejected requests of a broker in a 
certain time frame (30 seconds) "
+                    + "after the current connection is closed and the client "
+                    + "creates a new connection to connect to a different 
broker."
+    )
     private int maxNumberOfRejectedRequestPerConnection = 50;
+
+    @ApiModelProperty(
+            name = "keepAliveIntervalSeconds",
+            value = "Seconds of keeping alive interval for each client broker 
connection."
+    )
     private int keepAliveIntervalSeconds = 30;
+
+    @ApiModelProperty(
+            name = "connectionTimeoutMs",
+            value = "Duration of waiting for a connection to a broker to be 
established."
+                    + "If the duration passes without a response from a 
broker, the connection attempt is dropped."
+    )
     private int connectionTimeoutMs = 10000;
+    @ApiModelProperty(
+            name = "requestTimeoutMs",
+            value = "Maximum duration for completing a request."
+    )
     private int requestTimeoutMs = 60000;
+
+    @ApiModelProperty(
+            name = "initialBackoffIntervalNanos",
+            value = "Initial backoff interval, the unit is nanos."
+    )
     private long initialBackoffIntervalNanos = 
TimeUnit.MILLISECONDS.toNanos(100);
+
+    @ApiModelProperty(
+            name = "maxBackoffIntervalNanos",
+            value = "Max backoff interval, the unit is nanos."

Review comment:
       ```suggestion
               value = "Max backoff interval (in nanosecond)."
   ```

##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java
##########
@@ -49,70 +50,259 @@
 public class ClientConfigurationData implements Serializable, Cloneable {
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(
+            name = "serviceUrl",
+            value = "Pulsar cluster http url to connect to broker."
+    )
     private String serviceUrl;
+    @ApiModelProperty(
+            name = "serviceUrlProvider",
+            value = "The implementation class of ServiceUrlProvider, used to 
generate ServiceUrl."
+    )
     @JsonIgnore
     private transient ServiceUrlProvider serviceUrlProvider;
 
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Authentication settings of the client."
+    )
     @JsonIgnore
     private Authentication authentication;
+
+    @ApiModelProperty(
+            name = "authentication",
+            value = "Class name od authentication plugin of the client."
+    )
     private String authPluginClassName;
 
+    @ApiModelProperty(
+            name = "authParams",
+            value = "Authentication params of the client."
+    )
     @Secret
     private String authParams;
+
+    @ApiModelProperty(
+            name = "authParamMap",
+            value = "Authentication map of the client."
+    )
     @Secret
     private Map<String, String> authParamMap;
 
+    @ApiModelProperty(
+            name = "operationTimeoutMs",
+            value = "Client operation timeout, the unit is milliseconds."
+    )
     private long operationTimeoutMs = 30000;
+
+    @ApiModelProperty(
+            name = "statsIntervalSeconds",
+            value = "The Interval to print client stats, the unit is seconds."
+    )
     private long statsIntervalSeconds = 60;
 
+    @ApiModelProperty(
+            name = "numIoThreads",
+            value = "Number of IO threads."
+    )
     private int numIoThreads = 1;
+
+    @ApiModelProperty(
+            name = "numListenerThreads",
+            value = "Number of consumer listener threads."
+    )
     private int numListenerThreads = 1;
+
+    @ApiModelProperty(
+            name = "connectionsPerBroker",
+            value = "The number of connections established between the client 
and each Broker."
+    )
     private int connectionsPerBroker = 1;
 
+    @ApiModelProperty(
+            name = "useTcpNoDelay",
+            value = "Whether to use Tcp NoDelay option."
+    )
     private boolean useTcpNoDelay = true;
 
+    @ApiModelProperty(
+            name = "useTls",
+            value = "Whether to use TLS."
+    )
     private boolean useTls = false;
+
+    @ApiModelProperty(
+            name = "tlsTrustCertsFilePath",
+            value = "Path to the trusted TLS certificate file."
+    )
     private String tlsTrustCertsFilePath = "";
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the client accepts untrusted TLS certificates 
from the broker."
+    )
     private boolean tlsAllowInsecureConnection = false;
+
+    @ApiModelProperty(
+            name = "tlsAllowInsecureConnection",
+            value = "Whether the hostname is validated when the proxy creates 
a TLS connection with brokers."
+    )
     private boolean tlsHostnameVerificationEnable = false;
+    @ApiModelProperty(
+            name = "concurrentLookupRequest",
+            value = "The number of concurrent lookup requests that can be sent 
on each broker connection. "
+                    + "Setting a maximum helps to keep from overloading 
brokers."

Review comment:
       ```suggestion
                       + "Setting a maximum prevents overloading a broker."
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to