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

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


The following commit(s) were added to refs/heads/branch-3.3 by this push:
     new 722f87916d3 [fix][admin] Clearly define REST API on Open API for 
Namesaces@v2 (#22775)
722f87916d3 is described below

commit 722f87916d3367f1514d4108a11149d913849e84
Author: Baodi Shi <ba...@apache.org>
AuthorDate: Mon May 27 21:37:24 2024 +0800

    [fix][admin] Clearly define REST API on Open API for Namesaces@v2 (#22775)
    
    (cherry picked from commit 9b3876df70f3b1d8bc01a34308d718c456f1781b)
---
 .../pulsar/broker/admin/impl/NamespacesBase.java   |   2 +-
 .../apache/pulsar/broker/admin/v2/Namespaces.java  | 453 +++++++++++++++------
 2 files changed, 329 insertions(+), 126 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
index 5f2dccc3e9c..69cea9c9641 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
@@ -2699,7 +2699,7 @@ public abstract class NamespacesBase extends 
AdminResource {
                 }));
     }
 
-    protected CompletableFuture<Object> 
internalGetDispatcherPauseOnAckStatePersistentAsync() {
+    protected CompletableFuture<Boolean> 
internalGetDispatcherPauseOnAckStatePersistentAsync() {
         return validateNamespacePolicyOperationAsync(namespaceName,
                     PolicyName.DISPATCHER_PAUSE_ON_ACK_STATE_PERSISTENT, 
PolicyOperation.READ)
                 .thenCompose(__ -> 
namespaceResources().getPoliciesAsync(namespaceName))
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java
index 0e270ed34f7..3a7c614a7c6 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java
@@ -23,6 +23,8 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.Example;
+import io.swagger.annotations.ExampleProperty;
 import java.io.OutputStreamWriter;
 import java.nio.charset.StandardCharsets;
 import java.util.HashSet;
@@ -58,9 +60,11 @@ import org.apache.pulsar.common.policies.data.BacklogQuota;
 import org.apache.pulsar.common.policies.data.BacklogQuota.BacklogQuotaType;
 import org.apache.pulsar.common.policies.data.BookieAffinityGroupData;
 import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies;
+import org.apache.pulsar.common.policies.data.DispatchRate;
 import org.apache.pulsar.common.policies.data.EntryFilters;
 import org.apache.pulsar.common.policies.data.InactiveTopicPolicies;
 import org.apache.pulsar.common.policies.data.NamespaceOperation;
+import org.apache.pulsar.common.policies.data.OffloadPolicies;
 import org.apache.pulsar.common.policies.data.OffloadPoliciesImpl;
 import org.apache.pulsar.common.policies.data.PersistencePolicies;
 import org.apache.pulsar.common.policies.data.Policies;
@@ -72,6 +76,12 @@ import 
org.apache.pulsar.common.policies.data.SchemaAutoUpdateCompatibilityStrat
 import org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy;
 import org.apache.pulsar.common.policies.data.SubscribeRate;
 import org.apache.pulsar.common.policies.data.SubscriptionAuthMode;
+import org.apache.pulsar.common.policies.data.TopicHashPositions;
+import 
org.apache.pulsar.common.policies.data.impl.AutoSubscriptionCreationOverrideImpl;
+import 
org.apache.pulsar.common.policies.data.impl.AutoTopicCreationOverrideImpl;
+import org.apache.pulsar.common.policies.data.impl.BacklogQuotaImpl;
+import org.apache.pulsar.common.policies.data.impl.BookieAffinityGroupDataImpl;
+import org.apache.pulsar.common.policies.data.impl.BundlesDataImpl;
 import org.apache.pulsar.common.policies.data.impl.DispatchRateImpl;
 import org.apache.pulsar.common.util.FutureUtil;
 import org.apache.pulsar.metadata.api.MetadataStoreException;
@@ -151,7 +161,9 @@ public class Namespaces extends NamespacesBase {
     @PUT
     @Path("/{tenant}/{namespace}")
     @ApiOperation(value = "Creates a new namespace with the specified 
policies")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster doesn't 
exist"),
             @ApiResponse(code = 409, message = "Namespace already exists"),
             @ApiResponse(code = 412, message = "Namespace name is not valid") 
})
@@ -179,6 +191,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}")
     @ApiOperation(value = "Delete a namespace and all the topics under it.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
@@ -207,6 +220,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}")
     @ApiOperation(value = "Delete a namespace bundle and all the topics under 
it.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
@@ -230,7 +244,10 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/permissions")
-    @ApiOperation(value = "Retrieve the permissions for a namespace.")
+    @ApiOperation(value = "Retrieve the permissions for a namespace.",
+            notes = "Returns a nested map structure which Swagger does not 
fully support for display. "
+                    + "Structure: Map<String, Set<AuthAction>>. Please refer 
to this structure for details.",
+            response = AuthAction.class, responseContainer = "Map")
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Namespace is not empty") })
@@ -250,7 +267,10 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/permissions/subscription")
-    @ApiOperation(value = "Retrieve the permissions for a subscription.")
+    @ApiOperation(value = "Retrieve the permissions for a subscription.",
+            notes = "Returns a nested map structure which Swagger does not 
fully support for display. "
+            + "Structure: Map<String, Set<String>>. Please refer to this 
structure for details.",
+            response = String.class, responseContainer = "Map")
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Namespace is not empty")})
@@ -272,7 +292,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/permissions/{role}")
     @ApiOperation(value = "Grant a new permission to a role on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 501, message = "Authorization is not 
enabled")})
@@ -296,7 +318,9 @@ public class Namespaces extends NamespacesBase {
     @Path("/{property}/{namespace}/permissions/subscription/{subscription}")
     @ApiOperation(hidden = true, value = "Grant a new permission to roles for 
a subscription."
             + "[Tenant admin is allowed to perform this operation]")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Property or cluster or 
namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 501, message = "Authorization is not enabled") 
})
@@ -320,7 +344,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/permissions/{role}")
     @ApiOperation(value = "Revoke all permissions to a role on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void revokePermissionsOnNamespace(@Suspended AsyncResponse 
asyncResponse,
                                              @PathParam("tenant") String 
tenant,
@@ -339,7 +365,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{property}/{namespace}/permissions/{subscription}/{role}")
     @ApiOperation(hidden = true, value = "Revoke subscription admin-api access 
permission for a role.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Property or cluster or 
namespace doesn't exist") })
     public void revokePermissionOnSubscription(@Suspended AsyncResponse 
asyncResponse,
                                                @PathParam("property") String 
property,
@@ -359,7 +387,7 @@ public class Namespaces extends NamespacesBase {
     @GET
     @Path("/{tenant}/{namespace}/replication")
     @ApiOperation(value = "Get the replication clusters for a namespace.",
-            response = String.class, responseContainer = "List")
+            response = String.class, responseContainer = "Set")
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Namespace is not global")})
@@ -380,7 +408,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/replication")
     @ApiOperation(value = "Set the replication clusters for a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Peer-cluster can't be part of 
replication-cluster"),
             @ApiResponse(code = 412, message = "Namespace is not global or 
invalid cluster ids") })
@@ -421,7 +451,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/messageTTL")
     @ApiOperation(value = "Set message TTL in seconds for namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid TTL") })
     public void setNamespaceMessageTTL(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
@@ -441,7 +473,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/messageTTL")
     @ApiOperation(value = "Remove message TTL in seconds for namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid TTL")})
     public void removeNamespaceMessageTTL(@Suspended AsyncResponse 
asyncResponse,
@@ -459,7 +493,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/subscriptionExpirationTime")
-    @ApiOperation(value = "Get the subscription expiration time for the 
namespace")
+    @ApiOperation(value = "Get the subscription expiration time for the 
namespace", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void getSubscriptionExpirationTime(@Suspended AsyncResponse 
asyncResponse,
@@ -481,7 +515,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/subscriptionExpirationTime")
     @ApiOperation(value = "Set subscription expiration time in minutes for 
namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid expiration time")})
     public void setSubscriptionExpirationTime(@Suspended AsyncResponse 
asyncResponse,
@@ -504,7 +540,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/subscriptionExpirationTime")
     @ApiOperation(value = "Remove subscription expiration time for namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist")})
     public void removeSubscriptionExpirationTime(@Suspended AsyncResponse 
asyncResponse,
                                                  @PathParam("tenant") String 
tenant,
@@ -522,7 +560,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/deduplication")
-    @ApiOperation(value = "Get broker side deduplication for all topics in a 
namespace")
+    @ApiOperation(value = "Get broker side deduplication for all topics in a 
namespace", response = Boolean.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void getDeduplication(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
@@ -540,7 +578,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/deduplication")
     @ApiOperation(value = "Enable or disable broker side deduplication for all 
topics in a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void modifyDeduplication(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
                                     @PathParam("namespace") String namespace,
@@ -560,7 +600,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/deduplication")
     @ApiOperation(value = "Remove broker side deduplication for all topics in 
a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void removeDeduplication(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
                                     @PathParam("namespace") String namespace) {
@@ -577,7 +619,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/autoTopicCreation")
-    @ApiOperation(value = "Get autoTopicCreation info in a namespace")
+    @ApiOperation(value = "Get autoTopicCreation info in a namespace", 
response = AutoTopicCreationOverrideImpl.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist")})
     public void getAutoTopicCreation(@Suspended AsyncResponse asyncResponse,
@@ -596,7 +638,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/autoTopicCreation")
     @ApiOperation(value = "Override broker's allowAutoTopicCreation setting 
for a namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 406, message = "The number of partitions 
should be less than or"
                     + " equal to maxNumPartitionsPerPartitionedTopic"),
@@ -632,7 +676,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/autoTopicCreation")
     @ApiOperation(value = "Remove override of broker's allowAutoTopicCreation 
in a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void removeAutoTopicCreation(@Suspended final AsyncResponse 
asyncResponse,
                                         @PathParam("tenant") String tenant, 
@PathParam("namespace") String namespace) {
@@ -660,7 +706,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/autoSubscriptionCreation")
     @ApiOperation(value = "Override broker's allowAutoSubscriptionCreation 
setting for a namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 400, message = "Invalid 
autoSubscriptionCreation override")})
     public void setAutoSubscriptionCreation(
@@ -690,7 +738,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/autoSubscriptionCreation")
-    @ApiOperation(value = "Get autoSubscriptionCreation info in a namespace")
+    @ApiOperation(value = "Get autoSubscriptionCreation info in a namespace",
+            response = AutoSubscriptionCreationOverrideImpl.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist")})
     public void getAutoSubscriptionCreation(@Suspended final AsyncResponse 
asyncResponse,
@@ -709,7 +758,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/autoSubscriptionCreation")
     @ApiOperation(value = "Remove override of broker's 
allowAutoSubscriptionCreation in a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void removeAutoSubscriptionCreation(@Suspended final AsyncResponse 
asyncResponse,
                                         @PathParam("tenant") String tenant, 
@PathParam("namespace") String namespace) {
@@ -735,7 +786,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/bundles")
-    @ApiOperation(value = "Get the bundles split data.")
+    @ApiOperation(value = "Get the bundles split data.", response = 
BundlesDataImpl.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Namespace is not setup to 
split in bundles") })
@@ -767,6 +818,7 @@ public class Namespaces extends NamespacesBase {
                     + " since it wouldresult in non-persistent message loss 
and"
                     + " unexpected connection closure to the clients.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"),
@@ -799,6 +851,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}/unload")
     @ApiOperation(value = "Unload a namespace bundle")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 403, message = "Don't have admin permission") 
})
@@ -828,6 +881,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}/split")
     @ApiOperation(value = "Split a namespace bundle")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 403, message = "Don't have admin permission") 
})
@@ -864,7 +918,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/{bundle}/topicHashPositions")
-    @ApiOperation(value = "Get hash positions for topics")
+    @ApiOperation(value = "Get hash positions for topics", response = 
TopicHashPositions.class)
     @ApiResponses(value = {
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
@@ -890,7 +944,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{property}/{namespace}/publishRate")
     @ApiOperation(hidden = true, value = "Set publish-rate throttling for all 
topics of the namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void setPublishRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("property") String property,
             @PathParam("namespace") String namespace,
             @ApiParam(value = "Publish rate for all topics of the specified 
namespace") PublishRate publishRate) {
@@ -906,7 +962,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{property}/{namespace}/publishRate")
     @ApiOperation(hidden = true, value = "Set publish-rate throttling for all 
topics of the namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void removePublishRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("property") String property,
             @PathParam("namespace") String namespace) {
         validateNamespaceName(property, namespace);
@@ -924,7 +982,8 @@ public class Namespaces extends NamespacesBase {
     @Path("/{property}/{namespace}/publishRate")
     @ApiOperation(hidden = true,
             value = "Get publish-rate configured for the namespace, null means 
publish-rate not configured, "
-                    + "-1 means msg-publish-rate or byte-publish-rate not 
configured in publish-rate yet")
+                    + "-1 means msg-publish-rate or byte-publish-rate not 
configured in publish-rate yet",
+            response = PublishRate.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
     public void getPublishRate(@Suspended AsyncResponse asyncResponse,
@@ -943,7 +1002,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/dispatchRate")
     @ApiOperation(value = "Set dispatch-rate throttling for all topics of the 
namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void setDispatchRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
             @PathParam("namespace") String namespace,
             @ApiParam(value = "Dispatch rate for all topics of the specified 
namespace")
@@ -962,7 +1023,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/dispatchRate")
     @ApiOperation(value = "Delete dispatch-rate throttling for all topics of 
the namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void deleteDispatchRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
             @PathParam("namespace") String namespace) {
         validateNamespaceName(tenant, namespace);
@@ -979,7 +1042,8 @@ public class Namespaces extends NamespacesBase {
     @GET
     @Path("/{tenant}/{namespace}/dispatchRate")
     @ApiOperation(value = "Get dispatch-rate configured for the namespace, 
null means dispatch-rate not configured, "
-            + "-1 means msg-dispatch-rate or byte-dispatch-rate not configured 
in dispatch-rate yet")
+            + "-1 means msg-dispatch-rate or byte-dispatch-rate not configured 
in dispatch-rate yet",
+            response = DispatchRate.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getDispatchRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
@@ -996,7 +1060,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/subscriptionDispatchRate")
     @ApiOperation(value = "Set Subscription dispatch-rate throttling for all 
topics of the namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission")})
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission")})
     public void setSubscriptionDispatchRate(@Suspended AsyncResponse 
asyncResponse,
                                             @PathParam("tenant") String tenant,
                                             @PathParam("namespace") String 
namespace,
@@ -1018,7 +1084,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/subscriptionDispatchRate")
     @ApiOperation(value = "Get subscription dispatch-rate configured for the 
namespace, null means subscription "
             + "dispatch-rate not configured, -1 means msg-dispatch-rate or 
byte-dispatch-rate not configured "
-            + "in dispatch-rate yet")
+            + "in dispatch-rate yet", response = DispatchRate.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
     public void getSubscriptionDispatchRate(@Suspended AsyncResponse 
asyncResponse,
@@ -1038,7 +1104,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/subscriptionDispatchRate")
     @ApiOperation(value = "Delete Subscription dispatch-rate throttling for 
all topics of the namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void deleteSubscriptionDispatchRate(@Suspended AsyncResponse 
asyncResponse,
                                                @PathParam("tenant") String 
tenant,
                                                @PathParam("namespace") String 
namespace) {
@@ -1056,7 +1124,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/subscribeRate")
     @ApiOperation(value = "Delete subscribe-rate throttling for all topics of 
the namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission")})
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission")})
     public void deleteSubscribeRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
                                     @PathParam("namespace") String namespace) {
         validateNamespaceName(tenant, namespace);
@@ -1073,7 +1143,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/subscribeRate")
     @ApiOperation(value = "Set subscribe-rate throttling for all topics of the 
namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission")})
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission")})
     public void setSubscribeRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
                                  @PathParam("namespace") String namespace,
                                  @ApiParam(value = "Subscribe rate for all 
topics of the specified namespace")
@@ -1091,7 +1163,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/subscribeRate")
-    @ApiOperation(value = "Get subscribe-rate configured for the namespace")
+    @ApiOperation(value = "Get subscribe-rate configured for the namespace", 
response = SubscribeRate.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
     public void getSubscribeRate(@Suspended AsyncResponse asyncResponse, 
@PathParam("tenant") String tenant,
@@ -1109,7 +1181,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/replicatorDispatchRate")
     @ApiOperation(value = "Remove replicator dispatch-rate throttling for all 
topics of the namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission")})
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission")})
     public void removeReplicatorDispatchRate(@Suspended AsyncResponse 
asyncResponse,
                                              @PathParam("tenant") String 
tenant,
                                              @PathParam("namespace") String 
namespace) {
@@ -1120,7 +1194,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/replicatorDispatchRate")
     @ApiOperation(value = "Set replicator dispatch-rate throttling for all 
topics of the namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission")})
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission")})
     public void setReplicatorDispatchRate(@Suspended AsyncResponse 
asyncResponse,
                                           @PathParam("tenant") String tenant,
                                           @PathParam("namespace") String 
namespace,
@@ -1134,7 +1210,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/replicatorDispatchRate")
     @ApiOperation(value = "Get replicator dispatch-rate configured for the 
namespace, null means replicator "
             + "dispatch-rate not configured, -1 means msg-dispatch-rate or 
byte-dispatch-rate not configured "
-            + "in dispatch-rate yet")
+            + "in dispatch-rate yet", response = DispatchRateImpl.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
     @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getReplicatorDispatchRate(@Suspended final AsyncResponse 
asyncResponse,
@@ -1146,7 +1222,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/backlogQuotaMap")
-    @ApiOperation(value = "Get backlog quota map on a namespace.")
+    @ApiOperation(value = "Get backlog quota map on a namespace.",
+            response = BacklogQuotaImpl.class, responseContainer = "Map")
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getBacklogQuotaMap(
@@ -1160,7 +1237,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/backlogQuota")
     @ApiOperation(value = " Set a backlog quota for all the topics on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412,
@@ -1178,7 +1257,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/backlogQuota")
     @ApiOperation(value = "Remove a backlog quota policy from a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void removeBacklogQuota(
@@ -1191,7 +1272,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/retention")
-    @ApiOperation(value = "Get retention config on a namespace.")
+    @ApiOperation(value = "Get retention config on a namespace.", response = 
RetentionPolicies.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getRetention(@Suspended final AsyncResponse asyncResponse,
@@ -1212,7 +1293,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/retention")
     @ApiOperation(value = " Set retention configuration on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "Retention Quota must exceed 
backlog quota") })
@@ -1225,7 +1308,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/retention")
     @ApiOperation(value = " Remove retention configuration on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "Retention Quota must exceed 
backlog quota") })
@@ -1238,7 +1323,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/persistence")
     @ApiOperation(value = "Set the persistence configuration for all the 
topics on a namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 400, message = "Invalid persistence 
policies")})
@@ -1260,7 +1347,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/persistence")
     @ApiOperation(value = "Delete the persistence configuration for all topics 
on a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission") })
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission") 
})
     public void deletePersistence(@Suspended final AsyncResponse 
asyncResponse, @PathParam("tenant") String tenant,
                                   @PathParam("namespace") String namespace) {
         validateNamespaceName(tenant, namespace);
@@ -1278,6 +1367,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/persistence/bookieAffinity")
     @ApiOperation(value = "Set the bookie-affinity-group to 
namespace-persistent policy.")
     @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
@@ -1291,7 +1381,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{property}/{namespace}/persistence/bookieAffinity")
-    @ApiOperation(value = "Get the bookie-affinity-group from namespace-local 
policy.")
+    @ApiOperation(value = "Get the bookie-affinity-group from namespace-local 
policy.",
+            response = BookieAffinityGroupDataImpl.class)
     @ApiResponses(value = {
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
@@ -1306,7 +1397,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{property}/{namespace}/persistence/bookieAffinity")
     @ApiOperation(value = "Delete the bookie-affinity-group from 
namespace-local policy.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void deleteBookieAffinityGroup(@PathParam("property") String 
property,
@@ -1317,7 +1410,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/persistence")
-    @ApiOperation(value = "Get the persistence configuration for a namespace.")
+    @ApiOperation(value = "Get the persistence configuration for a 
namespace.", response = PersistencePolicies.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
@@ -1341,6 +1434,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/clearBacklog")
     @ApiOperation(value = "Clear backlog for all topics on a namespace.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespace"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void clearNamespaceBacklog(@Suspended final AsyncResponse 
asyncResponse, @PathParam("tenant") String tenant,
@@ -1360,6 +1454,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}/clearBacklog")
     @ApiOperation(value = "Clear backlog for all topics on a namespace 
bundle.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespace"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
@@ -1374,6 +1469,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/clearBacklog/{subscription}")
     @ApiOperation(value = "Clear backlog for a given subscription on all 
topics on a namespace.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespace"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void clearNamespaceBacklogForSubscription(@Suspended final 
AsyncResponse asyncResponse,
@@ -1394,6 +1490,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}/clearBacklog/{subscription}")
     @ApiOperation(value = "Clear backlog for a given subscription on all 
topics on a namespace bundle.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 307, message = "Current broker doesn't serve 
the namespace"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespace"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
@@ -1409,6 +1506,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/unsubscribe/{subscription}")
     @ApiOperation(value = "Unsubscribes the given subscription on all topics 
on a namespace.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespacen"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void unsubscribeNamespace(@Suspended final AsyncResponse 
asyncResponse, @PathParam("tenant") String tenant,
@@ -1429,6 +1527,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/{bundle}/unsubscribe/{subscription}")
     @ApiOperation(value = "Unsubscribes the given subscription on all topics 
on a namespace bundle.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin or operate 
permission on the namespace"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void unsubscribeNamespaceBundle(@PathParam("tenant") String tenant,
@@ -1442,7 +1541,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/subscriptionAuthMode")
     @ApiOperation(value = " Set a subscription auth mode for all the topics on 
a namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setSubscriptionAuthMode(@PathParam("tenant") String tenant,
@@ -1455,7 +1556,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/subscriptionAuthMode")
-    @ApiOperation(value = "Get subscription auth mode in a namespace")
+    @ApiOperation(value = "Get subscription auth mode in a namespace", 
response = SubscriptionAuthMode.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist")})
     public void getSubscriptionAuthMode(
@@ -1477,7 +1578,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/encryptionRequired")
     @ApiOperation(value = "Message encryption is required or not for all 
topics in a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"), })
     public void modifyEncryptionRequired(
@@ -1491,7 +1594,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/encryptionRequired")
-    @ApiOperation(value = "Get message encryption required status in a 
namespace")
+    @ApiOperation(value = "Get message encryption required status in a 
namespace", response = Boolean.class)
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist")})
     public void getEncryptionRequired(@Suspended AsyncResponse asyncResponse,
@@ -1511,7 +1614,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/delayedDelivery")
-    @ApiOperation(value = "Get delayed delivery messages config on a 
namespace.")
+    @ApiOperation(value = "Get delayed delivery messages config on a 
namespace.",
+            response = DelayedDeliveryPolicies.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"), })
@@ -1533,7 +1637,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/delayedDelivery")
     @ApiOperation(value = "Set delayed delivery messages config on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"), })
     public void setDelayedDeliveryPolicies(@PathParam("tenant") String tenant,
                                            @PathParam("namespace") String 
namespace,
@@ -1546,7 +1652,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/delayedDelivery")
     @ApiOperation(value = "Delete delayed delivery messages config on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"), })
     public void removeDelayedDeliveryPolicies(@PathParam("tenant") String 
tenant,
                                            @PathParam("namespace") String 
namespace) {
@@ -1556,7 +1664,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/inactiveTopicPolicies")
-    @ApiOperation(value = "Get inactive topic policies config on a namespace.")
+    @ApiOperation(value = "Get inactive topic policies config on a 
namespace.", response = InactiveTopicPolicies.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"), })
@@ -1578,7 +1686,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/inactiveTopicPolicies")
     @ApiOperation(value = "Remove inactive topic policies from a namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void removeInactiveTopicPolicies(@PathParam("tenant") String tenant,
@@ -1590,7 +1700,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/inactiveTopicPolicies")
     @ApiOperation(value = "Set inactive topic policies config on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"), })
     public void setInactiveTopicPolicies(@PathParam("tenant") String tenant,
                                          @PathParam("namespace") String 
namespace,
@@ -1602,7 +1714,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxProducersPerTopic")
-    @ApiOperation(value = "Get maxProducersPerTopic config on a namespace.")
+    @ApiOperation(value = "Get maxProducersPerTopic config on a namespace.", 
response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxProducersPerTopic(
@@ -1624,7 +1736,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxProducersPerTopic")
     @ApiOperation(value = " Set maxProducersPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "maxProducersPerTopic value is 
not valid") })
@@ -1637,7 +1751,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxProducersPerTopic")
     @ApiOperation(value = "Remove maxProducersPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void removeMaxProducersPerTopic(@PathParam("tenant") String tenant,
@@ -1648,7 +1764,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/deduplicationSnapshotInterval")
-    @ApiOperation(value = "Get deduplicationSnapshotInterval config on a 
namespace.")
+    @ApiOperation(value = "Get deduplicationSnapshotInterval config on a 
namespace.", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getDeduplicationSnapshotInterval(
@@ -1670,7 +1786,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/deduplicationSnapshotInterval")
     @ApiOperation(value = "Set deduplicationSnapshotInterval config on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
     public void setDeduplicationSnapshotInterval(@PathParam("tenant") String 
tenant
             , @PathParam("namespace") String namespace
@@ -1682,7 +1800,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxConsumersPerTopic")
-    @ApiOperation(value = "Get maxConsumersPerTopic config on a namespace.")
+    @ApiOperation(value = "Get maxConsumersPerTopic config on a namespace.", 
response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxConsumersPerTopic(
@@ -1704,7 +1822,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxConsumersPerTopic")
     @ApiOperation(value = " Set maxConsumersPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "maxConsumersPerTopic value is 
not valid") })
@@ -1717,7 +1837,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxConsumersPerTopic")
     @ApiOperation(value = "Remove maxConsumersPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void removeMaxConsumersPerTopic(@PathParam("tenant") String tenant,
@@ -1728,7 +1850,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxConsumersPerSubscription")
-    @ApiOperation(value = "Get maxConsumersPerSubscription config on a 
namespace.")
+    @ApiOperation(value = "Get maxConsumersPerSubscription config on a 
namespace.", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxConsumersPerSubscription(
@@ -1750,7 +1872,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxConsumersPerSubscription")
     @ApiOperation(value = " Set maxConsumersPerSubscription configuration on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "maxConsumersPerSubscription 
value is not valid")})
@@ -1766,7 +1890,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxConsumersPerSubscription")
     @ApiOperation(value = " Set maxConsumersPerSubscription configuration on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "maxConsumersPerSubscription 
value is not valid")})
@@ -1778,7 +1904,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerConsumer")
-    @ApiOperation(value = "Get maxUnackedMessagesPerConsumer config on a 
namespace.")
+    @ApiOperation(value = "Get maxUnackedMessagesPerConsumer config on a 
namespace.", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxUnackedMessagesPerConsumer(@Suspended final 
AsyncResponse asyncResponse,
@@ -1799,7 +1925,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerConsumer")
     @ApiOperation(value = " Set maxConsumersPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "maxUnackedMessagesPerConsumer 
value is not valid")})
@@ -1815,7 +1943,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerConsumer")
     @ApiOperation(value = "Remove maxUnackedMessagesPerConsumer config on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void removeMaxUnackedmessagesPerConsumer(@PathParam("tenant") 
String tenant,
                                                         
@PathParam("namespace") String namespace) {
@@ -1825,7 +1955,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerSubscription")
-    @ApiOperation(value = "Get maxUnackedMessagesPerSubscription config on a 
namespace.")
+    @ApiOperation(value = "Get maxUnackedMessagesPerSubscription config on a 
namespace.", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxUnackedmessagesPerSubscription(
@@ -1847,7 +1977,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerSubscription")
     @ApiOperation(value = " Set maxUnackedMessagesPerSubscription 
configuration on a namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = 
"maxUnackedMessagesPerSubscription value is not valid")})
@@ -1862,7 +1994,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxUnackedMessagesPerSubscription")
     @ApiOperation(value = "Remove maxUnackedMessagesPerSubscription config on 
a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void removeMaxUnackedmessagesPerSubscription(@PathParam("tenant") 
String tenant,
                                                         
@PathParam("namespace") String namespace) {
@@ -1872,7 +2006,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxSubscriptionsPerTopic")
-    @ApiOperation(value = "Get maxSubscriptionsPerTopic config on a 
namespace.")
+    @ApiOperation(value = "Get maxSubscriptionsPerTopic config on a 
namespace.", response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getMaxSubscriptionsPerTopic(@Suspended final AsyncResponse 
asyncResponse,
@@ -1893,7 +2027,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxSubscriptionsPerTopic")
     @ApiOperation(value = " Set maxSubscriptionsPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = 
"maxUnackedMessagesPerSubscription value is not valid")})
@@ -1908,7 +2044,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxSubscriptionsPerTopic")
     @ApiOperation(value = "Remove maxSubscriptionsPerTopic configuration on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void removeMaxSubscriptionsPerTopic(@PathParam("tenant") String 
tenant,
@@ -1920,7 +2058,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/antiAffinity")
     @ApiOperation(value = "Set anti-affinity group for a namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid antiAffinityGroup")})
     public void setNamespaceAntiAffinityGroup(@PathParam("tenant") String 
tenant,
@@ -1934,7 +2074,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/antiAffinity")
-    @ApiOperation(value = "Get anti-affinity group of a namespace.")
+    @ApiOperation(value = "Get anti-affinity group of a namespace.", response 
= String.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public String getNamespaceAntiAffinityGroup(@PathParam("tenant") String 
tenant,
@@ -1946,7 +2086,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/antiAffinity")
     @ApiOperation(value = "Remove anti-affinity group of a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
     public void removeNamespaceAntiAffinityGroup(@PathParam("tenant") String 
tenant,
@@ -1958,7 +2100,8 @@ public class Namespaces extends NamespacesBase {
     @GET
     @Path("{cluster}/antiAffinity/{group}")
     @ApiOperation(value = "Get all namespaces that are grouped by given 
anti-affinity group in a given cluster."
-            + " api can be only accessed by admin of any of the existing 
tenant")
+            + " api can be only accessed by admin of any of the existing 
tenant",
+            response = String.class, responseContainer = "List")
     @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 412, message = "Cluster not 
exist/Anti-affinity group can't be empty.")})
     public List<String> getAntiAffinityNamespaces(@PathParam("cluster") String 
cluster,
@@ -1970,7 +2113,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/compactionThreshold")
     @ApiOperation(value = "Maximum number of uncompacted bytes in topics 
before compaction is triggered.",
                   notes = "The backlog size is compared to the threshold 
periodically. "
-                          + "A threshold of 0 disabled automatic compaction")
+                          + "A threshold of 0 disabled automatic compaction", 
response = Long.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
                             @ApiResponse(code = 404, message = "Namespace 
doesn't exist") })
     public void getCompactionThreshold(
@@ -1994,7 +2137,9 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "Set maximum number of uncompacted bytes in a topic 
before compaction is triggered.",
             notes = "The backlog size is compared to the threshold 
periodically. "
                     + "A threshold of 0 disabled automatic compaction")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "compactionThreshold value is 
not valid")})
@@ -2012,7 +2157,9 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "Delete maximum number of uncompacted bytes in a 
topic before compaction is triggered.",
             notes = "The backlog size is compared to the threshold 
periodically. "
                     + "A threshold of 0 disabled automatic compaction")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void deleteCompactionThreshold(@PathParam("tenant") String tenant,
@@ -2025,7 +2172,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/offloadThreshold")
     @ApiOperation(value = "Maximum number of bytes stored on the pulsar 
cluster for a topic,"
                           + " before the broker will start offloading to 
longterm storage",
-                  notes = "A negative value disables automatic offloading")
+                  notes = "A negative value disables automatic offloading", 
response = Long.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
                             @ApiResponse(code = 404, message = "Namespace 
doesn't exist") })
     public void getOffloadThreshold(
@@ -2056,7 +2203,9 @@ public class Namespaces extends NamespacesBase {
             + " before the broker will start offloading to longterm storage",
             notes = "-1 will revert to using the cluster default."
                     + " A negative value disables automatic offloading. ")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "offloadThreshold value is not 
valid")})
@@ -2074,7 +2223,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/offloadThresholdInSeconds")
     @ApiOperation(value = "Maximum number of bytes stored on the pulsar 
cluster for a topic,"
             + " before the broker will start offloading to longterm storage",
-            notes = "A negative value disables automatic offloading")
+            notes = "A negative value disables automatic offloading", response 
= Long.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist") })
     public void getOffloadThresholdInSeconds(
@@ -2104,7 +2253,9 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "Set maximum number of seconds stored on the pulsar 
cluster for a topic,"
             + " before the broker will start offloading to longterm storage",
             notes = "A negative value disables automatic offloading")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "offloadThresholdInSeconds 
value is not valid") })
@@ -2128,7 +2279,7 @@ public class Namespaces extends NamespacesBase {
                           + " from the Pulsar cluster's local storage (i.e. 
BookKeeper)",
                   notes = "A negative value denotes that deletion has been 
completely disabled."
                           + " 'null' denotes that the topics in the namespace 
will fall back to the"
-                          + " broker default for deletion lag.")
+                          + " broker default for deletion lag.", response = 
Long.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
                             @ApiResponse(code = 404, message = "Namespace 
doesn't exist") })
     public void getOffloadDeletionLag(
@@ -2158,7 +2309,9 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "Set number of milliseconds to wait before deleting 
a ledger segment which has been offloaded"
             + " from the Pulsar cluster's local storage (i.e. BookKeeper)",
             notes = "A negative value disables the deletion completely.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
             @ApiResponse(code = 412, message = "offloadDeletionLagMs value is 
not valid")})
@@ -2177,6 +2330,7 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "Clear the namespace configured offload deletion 
lag. The topics in the namespace"
                           + " will fallback to using the default configured 
deletion lag for the broker")
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+                            @ApiResponse(code = 200, message = "Operation 
successful"),
                             @ApiResponse(code = 404, message = "Namespace 
doesn't exist"),
                             @ApiResponse(code = 409, message = "Concurrent 
modification") })
     public void clearOffloadDeletionLag(@PathParam("tenant") String tenant,
@@ -2190,7 +2344,8 @@ public class Namespaces extends NamespacesBase {
     @ApiOperation(value = "The strategy used to check the compatibility of new 
schemas,"
                           + " provided by producers, before automatically 
updating the schema",
                   notes = "The value AutoUpdateDisabled prevents producers 
from updating the schema. "
-                          + " If set to AutoUpdateDisabled, schemas must be 
updated through the REST api")
+                          + " If set to AutoUpdateDisabled, schemas must be 
updated through the REST api",
+            response = SchemaAutoUpdateCompatibilityStrategy.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
                             @ApiResponse(code = 404, message = "Namespace 
doesn't exist"),
                             @ApiResponse(code = 409, message = "Concurrent 
modification") })
@@ -2207,7 +2362,9 @@ public class Namespaces extends NamespacesBase {
             + " provided by producers, before automatically updating the 
schema",
             notes = "The value AutoUpdateDisabled prevents producers from 
updating the schema. "
                     + " If set to AutoUpdateDisabled, schemas must be updated 
through the REST api")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setSchemaAutoUpdateCompatibilityStrategy(
@@ -2221,7 +2378,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/schemaCompatibilityStrategy")
-    @ApiOperation(value = "The strategy of the namespace schema compatibility 
")
+    @ApiOperation(value = "The strategy of the namespace schema compatibility 
",
+            response = SchemaCompatibilityStrategy.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
@@ -2245,7 +2403,9 @@ public class Namespaces extends NamespacesBase {
     @PUT
     @Path("/{tenant}/{namespace}/schemaCompatibilityStrategy")
     @ApiOperation(value = "Update the strategy used to check the compatibility 
of new schema")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setSchemaCompatibilityStrategy(
@@ -2259,7 +2419,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/isAllowAutoUpdateSchema")
-    @ApiOperation(value = "The flag of whether allow auto update schema")
+    @ApiOperation(value = "The flag of whether allow auto update schema", 
response = Boolean.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
@@ -2289,7 +2449,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/isAllowAutoUpdateSchema")
     @ApiOperation(value = "Update flag of whether allow auto update schema")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setIsAllowAutoUpdateSchema(
@@ -2303,7 +2465,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/subscriptionTypesEnabled")
-    @ApiOperation(value = "The set of whether allow subscription types")
+    @ApiOperation(value = "The set of whether allow subscription types",
+            response = SubscriptionType.class, responseContainer = "Set")
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification") })
@@ -2331,7 +2494,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/subscriptionTypesEnabled")
     @ApiOperation(value = "Update set of whether allow share sub type")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setSubscriptionTypesEnabled(
@@ -2362,7 +2527,8 @@ public class Namespaces extends NamespacesBase {
                   notes = "If the flag is set to true, when a producer without 
a schema attempts to produce to a topic"
                           + " with schema in this namespace, the producer will 
be failed to connect. PLEASE be"
                           + " carefully on using this, since non-java clients 
don't support schema.if you enable"
-                          + " this setting, it will cause non-java clients 
failed to produce.")
+                          + " this setting, it will cause non-java clients 
failed to produce.",
+            response = Boolean.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
                             @ApiResponse(code = 404, message = "Tenants or 
Namespace doesn't exist") })
     public void getSchemaValidtionEnforced(
@@ -2397,7 +2563,9 @@ public class Namespaces extends NamespacesBase {
                     + " with schema in this namespace, the producer will be 
failed to connect. PLEASE be"
                     + " carefully on using this, since non-java clients don't 
support schema.if you enable"
                     + " this setting, it will cause non-java clients failed to 
produce.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or Namespace doesn't 
exist"),
             @ApiResponse(code = 412, message = "schemaValidationEnforced value 
is not valid")})
     public void setSchemaValidationEnforced(@PathParam("tenant") String tenant,
@@ -2412,8 +2580,9 @@ public class Namespaces extends NamespacesBase {
 
     @POST
     @Path("/{tenant}/{namespace}/offloadPolicies")
-    @ApiOperation(value = " Set offload configuration on a namespace.")
+    @ApiOperation(value = "Set offload configuration on a namespace.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
@@ -2437,6 +2606,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/removeOffloadPolicies")
     @ApiOperation(value = " Set offload configuration on a namespace.")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist"),
             @ApiResponse(code = 409, message = "Concurrent modification"),
@@ -2456,7 +2626,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/offloadPolicies")
-    @ApiOperation(value = "Get offload configuration on a namespace.")
+    @ApiOperation(value = "Get offload configuration on a namespace.", 
response = OffloadPolicies.class)
     @ApiResponses(value = {
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist")})
@@ -2478,7 +2648,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/maxTopicsPerNamespace")
-    @ApiOperation(value = "Get maxTopicsPerNamespace config on a namespace.")
+    @ApiOperation(value = "Get maxTopicsPerNamespace config on a namespace.", 
response = Integer.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace does not 
exist") })
     public void getMaxTopicsPerNamespace(@Suspended final AsyncResponse 
asyncResponse,
@@ -2503,7 +2673,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/maxTopicsPerNamespace")
     @ApiOperation(value = "Set maxTopicsPerNamespace config on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void setMaxTopicsPerNamespace(@PathParam("tenant") String tenant,
                                          @PathParam("namespace") String 
namespace,
@@ -2516,7 +2688,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/maxTopicsPerNamespace")
     @ApiOperation(value = "Remove maxTopicsPerNamespace config on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void removeMaxTopicsPerNamespace(@PathParam("tenant") String tenant,
                                          @PathParam("namespace") String 
namespace) {
@@ -2527,7 +2701,9 @@ public class Namespaces extends NamespacesBase {
     @PUT
     @Path("/{tenant}/{namespace}/property/{key}/{value}")
     @ApiOperation(value = "Put a key value pair property on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void setProperty(
             @Suspended final AsyncResponse asyncResponse,
@@ -2541,7 +2717,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/property/{key}")
-    @ApiOperation(value = "Get property value for a given key on a namespace.")
+    @ApiOperation(value = "Get property value for a given key on a 
namespace.", response = String.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void getProperty(
@@ -2556,7 +2732,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/property/{key}")
     @ApiOperation(value = "Remove property value for a given key on a 
namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void removeProperty(
             @Suspended final AsyncResponse asyncResponse,
@@ -2570,7 +2748,9 @@ public class Namespaces extends NamespacesBase {
     @PUT
     @Path("/{tenant}/{namespace}/properties")
     @ApiOperation(value = "Put key value pairs property on a namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void setProperties(
             @Suspended final AsyncResponse asyncResponse,
@@ -2584,7 +2764,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/properties")
-    @ApiOperation(value = "Get key value pair properties for a given 
namespace.")
+    @ApiOperation(value = "Get key value pair properties for a given 
namespace.",
+            response = String.class, responseContainer = "Map")
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void getProperties(
@@ -2598,7 +2779,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/properties")
     @ApiOperation(value = "Clear properties on a given namespace.")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or namespace doesn't 
exist"), })
     public void clearProperties(
             @Suspended final AsyncResponse asyncResponse,
@@ -2610,7 +2793,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/resourcegroup")
-    @ApiOperation(value = "Get the resource group attached to the namespace")
+    @ApiOperation(value = "Get the resource group attached to the namespace", 
response = String.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void getNamespaceResourceGroup(
@@ -2632,7 +2815,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/resourcegroup/{resourcegroup}")
     @ApiOperation(value = "Set resourcegroup for a namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid resourcegroup") })
     public void setNamespaceResourceGroup(@PathParam("tenant") String tenant, 
@PathParam("namespace") String namespace,
@@ -2644,7 +2829,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/resourcegroup")
     @ApiOperation(value = "Delete resourcegroup for a namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid resourcegroup")})
     public void removeNamespaceResourceGroup(@PathParam("tenant") String 
tenant,
@@ -2656,7 +2843,13 @@ public class Namespaces extends NamespacesBase {
     @GET
     @Path("/{tenant}/{namespace}/scanOffloadedLedgers")
     @ApiOperation(value = "Trigger the scan of offloaded Ledgers on the 
LedgerOffloader for the given namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Successful get of offloaded 
ledger data", response = String.class,
+                examples = @Example(value = { @ExampleProperty(mediaType = 
"application/json",
+                        value = 
"{\"objects\":[{\"key1\":\"value1\",\"key2\":\"value2\"}],"
+                                + "\"total\":100,\"errors\":5,\"unknown\":3}")
+            })),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Namespace doesn't exist") })
     public Response scanOffloadedLedgers(@PathParam("tenant") String tenant,
             @PathParam("namespace") String namespace) {
@@ -2705,7 +2898,7 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/entryFilters")
-    @ApiOperation(value = "Get maxConsumersPerSubscription config on a 
namespace.")
+    @ApiOperation(value = "Get maxConsumersPerSubscription config on a 
namespace.", response = EntryFilters.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Namespace does not exist") })
     public void getEntryFiltersPerTopic(
@@ -2728,6 +2921,7 @@ public class Namespaces extends NamespacesBase {
     @Path("/{tenant}/{namespace}/entryFilters")
     @ApiOperation(value = "Set entry filters for namespace")
     @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
             @ApiResponse(code = 400, message = "Specified entry filters are 
not valid"),
             @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist")
@@ -2749,7 +2943,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/entryFilters")
     @ApiOperation(value = "Remove entry filters for namespace")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 412, message = "Invalid TTL")})
     public void removeNamespaceEntryFilters(@Suspended AsyncResponse 
asyncResponse,
@@ -2768,7 +2964,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/migration")
     @ApiOperation(hidden = true, value = "Update migration for all topics in a 
namespace")
-    @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 200, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Property or cluster or 
namespace doesn't exist") })
     public void enableMigration(@PathParam("tenant") String tenant,
                                 @PathParam("namespace") String namespace,
@@ -2780,7 +2978,9 @@ public class Namespaces extends NamespacesBase {
     @POST
     @Path("/{tenant}/{namespace}/dispatcherPauseOnAckStatePersistent")
     @ApiOperation(value = "Set dispatcher pause on ack state persistent 
configuration for specified namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void setDispatcherPauseOnAckStatePersistent(@Suspended final 
AsyncResponse asyncResponse,
@@ -2802,7 +3002,9 @@ public class Namespaces extends NamespacesBase {
     @DELETE
     @Path("/{tenant}/{namespace}/dispatcherPauseOnAckStatePersistent")
     @ApiOperation(value = "Remove dispatcher pause on ack state persistent 
configuration for specified namespace.")
-    @ApiResponses(value = {@ApiResponse(code = 403, message = "Don't have 
admin permission"),
+    @ApiResponses(value = {
+            @ApiResponse(code = 204, message = "Operation successful"),
+            @ApiResponse(code = 403, message = "Don't have admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist"),
             @ApiResponse(code = 409, message = "Concurrent modification")})
     public void removeDispatcherPauseOnAckStatePersistent(@Suspended final 
AsyncResponse asyncResponse,
@@ -2823,7 +3025,8 @@ public class Namespaces extends NamespacesBase {
 
     @GET
     @Path("/{tenant}/{namespace}/dispatcherPauseOnAckStatePersistent")
-    @ApiOperation(value = "Get dispatcher pause on ack state persistent config 
on a namespace.")
+    @ApiOperation(value = "Get dispatcher pause on ack state persistent config 
on a namespace.",
+            response = Boolean.class)
     @ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have 
admin permission"),
             @ApiResponse(code = 404, message = "Tenant or cluster or namespace 
doesn't exist") })
     public void getDispatcherPauseOnAckStatePersistent(@Suspended final 
AsyncResponse asyncResponse,

Reply via email to