You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/05/11 14:02:17 UTC

[2/2] stratos git commit: Refactoring API response message format and adding status attribute

Refactoring API response message format and adding status attribute


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/617e454a
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/617e454a
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/617e454a

Branch: refs/heads/master
Commit: 617e454a90f17c41620e53a54aca0c92cb47e28f
Parents: 10b52cc
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon May 11 17:23:11 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon May 11 17:31:54 2015 +0530

----------------------------------------------------------------------
 .../stratos/common/beans/ApiResponseBean.java   |  36 --
 .../common/beans/ResponseMessageBean.java       |  57 +++
 .../common/beans/StatusResponseBean.java        |  54 ---
 .../rest/endpoint/api/StratosApiV40.java        |  36 +-
 .../rest/endpoint/api/StratosApiV40Utils.java   |  18 +-
 .../rest/endpoint/api/StratosApiV41.java        | 388 +++++++++----------
 .../handlers/BadRequestExceptionMapper.java     |   4 +-
 .../handlers/ComponentSynchronizerHandler.java  |   4 +-
 .../CookieBasedAuthenticationHandler.java       |   5 +-
 .../handlers/CustomExceptionMapper.java         |   4 +-
 .../CustomThrowableExceptionMapper.java         |   9 +-
 .../handlers/GenericExceptionMapper.java        |  11 +-
 .../handlers/StratosAuthenticationHandler.java  |  15 +-
 .../handlers/StratosAuthorizingHandler.java     |  11 +-
 .../endpoint/handlers/StratosMockHandler.java   |   9 +-
 .../stratos/rest/endpoint/mock/MockContext.java |  46 +--
 .../rest/endpoint/mock/StratosApiV40Mock.java   |  26 +-
 17 files changed, 342 insertions(+), 391 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ApiResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ApiResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ApiResponseBean.java
deleted file mode 100644
index 730b06d..0000000
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ApiResponseBean.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.stratos.common.beans;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-public class ApiResponseBean {
-
-    private String message;
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ResponseMessageBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ResponseMessageBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ResponseMessageBean.java
new file mode 100644
index 0000000..eb564c1
--- /dev/null
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/ResponseMessageBean.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.common.beans;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlRootElement
+@XmlType(propOrder = {"status", "message"})
+public class ResponseMessageBean {
+
+    public static final String SUCCESS = "success";
+    public static final String ERROR = "error";
+
+    private String status;
+    private String message;
+
+    public ResponseMessageBean() {
+    }
+
+    public ResponseMessageBean(String status, String message) {
+        this.status = status;
+        this.message = message;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
deleted file mode 100644
index 814f640..0000000
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/StatusResponseBean.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.common.beans;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-public class StatusResponseBean {
-
-    private int statusCode;
-    private String message;
-
-    public StatusResponseBean() {
-    }
-
-    public StatusResponseBean(int statusCode, String message) {
-        this.statusCode = statusCode;
-        this.message = message;
-    }
-
-    public int getStatusCode() {
-        return statusCode;
-    }
-
-    public void setStatusCode(int statusCode) {
-        this.statusCode = statusCode;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String successMessage) {
-        this.message = successMessage;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
index cc81ebc..ac27c4f 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40.java
@@ -20,7 +20,7 @@ package org.apache.stratos.rest.endpoint.api;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.common.beans.ApiResponseBean;
+import org.apache.stratos.common.beans.ResponseMessageBean;
 import org.apache.stratos.common.beans.artifact.repository.GitNotificationPayloadBean;
 import org.apache.stratos.common.beans.cartridge.CartridgeBean;
 import org.apache.stratos.common.beans.partition.PartitionBean;
@@ -71,10 +71,10 @@ public class StratosApiV40 extends AbstractApi {
     @POST
     @Path("/init")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public ApiResponseBean initialize()
+    public ResponseMessageBean initialize()
             throws RestAPIException {
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully logged in");
         return stratosApiResponse;
     }
@@ -108,7 +108,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean deployCartridgeBeanDefinition(CartridgeBean cartridgeDefinitionBean)
+    public ResponseMessageBean deployCartridgeBeanDefinition(CartridgeBean cartridgeDefinitionBean)
             throws RestAPIException {
 
         return StratosApiV40Utils.deployCartridge(cartridgeDefinitionBean, getConfigContext(), getUsername(),
@@ -122,7 +122,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean unDeployCartridgeBeanDefinition(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
+    public ResponseMessageBean unDeployCartridgeBeanDefinition(@PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
 
         return StratosApiV40Utils.undeployCartridge(cartridgeType);
     }
@@ -145,7 +145,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean deployAutoscalingPolicyDefintion(AutoscalePolicyBean autoscalePolicy)
+    public ResponseMessageBean deployAutoscalingPolicyDefintion(AutoscalePolicyBean autoscalePolicy)
             throws RestAPIException {
 
         return StratosApiV40Utils.deployAutoscalingPolicy(autoscalePolicy);
@@ -426,7 +426,7 @@ public class StratosApiV40 extends AbstractApi {
     @Path("/cartridge/unsubscribe")
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
-    public ApiResponseBean unsubscribe(String alias) throws RestAPIException {
+    public ResponseMessageBean unsubscribe(String alias) throws RestAPIException {
 
         return StratosApiV40Utils.unsubscribe(alias, getTenantDomain());
 
@@ -438,7 +438,7 @@ public class StratosApiV40 extends AbstractApi {
     @Produces("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
+    public ResponseMessageBean addTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
         try {
             CommonUtil.validateEmail(tenantInfoBean.getEmail());
         } catch (Exception e) {
@@ -513,7 +513,7 @@ public class StratosApiV40 extends AbstractApi {
             throw new RestAPIException(msg);
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully added new tenant with domain " + tenantInfoBean.getTenantDomain());
         return stratosApiResponse;
     }
@@ -523,7 +523,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
+    public ResponseMessageBean updateTenant(TenantInfoBean tenantInfoBean) throws RestAPIException {
 
         try {
             return updateExistingTenant(tenantInfoBean);
@@ -534,7 +534,7 @@ public class StratosApiV40 extends AbstractApi {
         }
     }
 
-    private ApiResponseBean updateExistingTenant(TenantInfoBean tenantInfoBean) throws Exception {
+    private ResponseMessageBean updateExistingTenant(TenantInfoBean tenantInfoBean) throws Exception {
 
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         UserStoreManager userStoreManager;
@@ -654,7 +654,7 @@ public class StratosApiV40 extends AbstractApi {
             throw new Exception(msg, e);
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully updated the tenant " + tenantDomain);
         return stratosApiResponse;
     }
@@ -725,7 +725,7 @@ public class StratosApiV40 extends AbstractApi {
     @Produces("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+    public ResponseMessageBean deleteTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         int tenantId = 0;
         try {
@@ -749,7 +749,7 @@ public class StratosApiV40 extends AbstractApi {
             throw new RestAPIException(msg);
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully deleted tenant " + tenantDomain);
         return stratosApiResponse;
     }
@@ -794,7 +794,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean activateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+    public ResponseMessageBean activateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         int tenantId;
         try {
@@ -810,7 +810,7 @@ public class StratosApiV40 extends AbstractApi {
             throw new RestAPIException(e);
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
 
         try {
             TenantMgtUtil.activateTenant(tenantDomain, tenantManager, tenantId);
@@ -853,7 +853,7 @@ public class StratosApiV40 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     @SuperTenantService(true)
-    public ApiResponseBean deactivateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
+    public ResponseMessageBean deactivateTenant(@PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         TenantManager tenantManager = ServiceHolder.getTenantManager();
         int tenantId;
@@ -871,7 +871,7 @@ public class StratosApiV40 extends AbstractApi {
             throw new RestAPIException(e);
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
 
         try {
             TenantMgtUtil.deactivateTenant(tenantDomain, tenantManager, tenantId);

http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
index 061a988..241a1c7 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV40Utils.java
@@ -29,7 +29,7 @@ import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCar
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidIaasProviderExceptionException;
 import org.apache.stratos.cloud.controller.stub.domain.Cartridge;
-import org.apache.stratos.common.beans.ApiResponseBean;
+import org.apache.stratos.common.beans.ResponseMessageBean;
 import org.apache.stratos.common.beans.artifact.repository.GitNotificationPayloadBean;
 import org.apache.stratos.common.beans.cartridge.CartridgeBean;
 import org.apache.stratos.common.beans.partition.PartitionBean;
@@ -61,7 +61,7 @@ public class StratosApiV40Utils {
 
     private static Log log = LogFactory.getLog(StratosApiV40Utils.class);
 
-    static ApiResponseBean deployCartridge(CartridgeBean cartridgeDefinitionBean, ConfigurationContext ctxt,
+    static ResponseMessageBean deployCartridge(CartridgeBean cartridgeDefinitionBean, ConfigurationContext ctxt,
                                            String userName, String tenantDomain) throws RestAPIException {
 
         log.info("Starting to deploy a Cartridge [type] " + cartridgeDefinitionBean.getType());
@@ -98,7 +98,7 @@ public class StratosApiV40Utils {
             }
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         String message = "Successfully added cartridge definition: [cartridge-type] " + cartridgeDefinitionBean.getType();
         stratosApiResponse.setMessage(message);
         if (log.isInfoEnabled()) {
@@ -127,7 +127,7 @@ public class StratosApiV40Utils {
 //        return commonPolicies.toArray(new DeploymentPolicy[0]);
 //    }
 
-    static ApiResponseBean undeployCartridge(String cartridgeType) throws RestAPIException {
+    static ResponseMessageBean undeployCartridge(String cartridgeType) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
@@ -144,12 +144,12 @@ public class StratosApiV40Utils {
 
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully undeployed cartridge definition with type " + cartridgeType);
         return stratosApiResponse;
     }
 
-    public static ApiResponseBean deployAutoscalingPolicy(AutoscalePolicyBean autoscalePolicyBean) throws RestAPIException {
+    public static ResponseMessageBean deployAutoscalingPolicy(AutoscalePolicyBean autoscalePolicyBean) throws RestAPIException {
 
         //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
 
@@ -172,7 +172,7 @@ public class StratosApiV40Utils {
 
         }
 
-        ApiResponseBean stratosApiResponse = new ApiResponseBean();
+        ResponseMessageBean stratosApiResponse = new ResponseMessageBean();
         stratosApiResponse.setMessage("Successfully deployed autoscaling policy definition with id " + autoscalePolicyBean.getId());
         return stratosApiResponse;
     }
@@ -887,7 +887,7 @@ public class StratosApiV40Utils {
         return cartridgeSubscription.getClusterDomain();
     } */
 
-    static ApiResponseBean unsubscribe(String alias, String tenantDomain) throws RestAPIException {
+    static ResponseMessageBean unsubscribe(String alias, String tenantDomain) throws RestAPIException {
         throw new RestAPIException("Not implemented");
     }
 
@@ -902,7 +902,7 @@ public class StratosApiV40Utils {
         }
     }
 
-    public static ApiResponseBean removeSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType,
+    public static ResponseMessageBean removeSubscriptionDomain(ConfigurationContext configurationContext, String cartridgeType,
                                                            String subscriptionAlias, String domain) throws RestAPIException {
         throw new RestAPIException("Not implemented");
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/617e454a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 4b932dd..48a9c2a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -83,8 +83,8 @@ public class StratosApiV41 extends AbstractApi {
     @AuthorizationAction("/permission/admin/restlogin")
     public Response initialize()
             throws RestAPIException {
-        ApiResponseBean response = new ApiResponseBean();
-        response.setMessage("Successfully authenticated");
+        ResponseMessageBean response = new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                "Successfully authenticated");
         return Response.ok(response).build();
     }
 
@@ -133,12 +133,12 @@ public class StratosApiV41 extends AbstractApi {
             String msg = String.format("Cartridge already exists: [cartridge-type] %s", cartridgeType);
             log.warn(msg);
             return Response.status(Response.Status.CONFLICT)
-                    .entity(new StatusResponseBean(Response.Status.CONFLICT.getStatusCode(), msg)).build();
+                    .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, msg)).build();
         }
 
         StratosApiV41Utils.addCartridge(cartridgeDefinitionBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeType).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Cartridge added successfully: [cartridge-type] %s", cartridgeType))).build();
     }
 
@@ -162,14 +162,14 @@ public class StratosApiV41 extends AbstractApi {
             // TODO :: Deployment policy validation
             StratosApiV41Utils.addDeploymentPolicy(deploymentPolicyDefinitionBean);
         } catch (AutoscalerServiceInvalidDeploymentPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Deployment policy is not valid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy is not valid")).build();
         } catch (AutoscalerServiceDeploymentPolicyAlreadyExistsExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), "Deployment policy already exists")).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy already exists")).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.ERROR,
                 String.format("Deployment policy added successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -189,8 +189,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("deploymentPolicyId") String deploymentPolicyId) throws RestAPIException {
         DeploymentPolicyBean deploymentPolicyBean = StratosApiV41Utils.getDeployementPolicy(deploymentPolicyId);
         if (deploymentPolicyBean == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Deployment policy not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy not found")).build();
         }
         return Response.ok(deploymentPolicyBean).build();
     }
@@ -210,8 +210,8 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         DeploymentPolicyBean[] deploymentPolicies = StratosApiV41Utils.getDeployementPolicies();
         if (deploymentPolicies == null || deploymentPolicies.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No deployment policies found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No deployment policies found")).build();
         }
 
         return Response.ok(deploymentPolicies).build();
@@ -241,19 +241,19 @@ public class StratosApiV41 extends AbstractApi {
 
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
 
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Deployment policy is invalid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy is invalid")).build();
         } catch (AutoscalerServiceInvalidDeploymentPolicyExceptionException e) {
 
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Deployment policy is invalid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy is invalid")).build();
         } catch (AutoscalerServiceDeploymentPolicyNotExistsExceptionException e) {
 
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Deployment policy not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Deployment policy not found")).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Deployment policy updated successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -276,11 +276,11 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeDeploymentPolicy(deploymentPolicyID);
         } catch (AutoscalerServiceDeploymentPolicyNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy not found")).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(deploymentPolicyID).build();
-        return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Deployment policy removed successfully: " + "[deployment-policy-id] %s",
                         deploymentPolicyID))).build();
     }
@@ -302,7 +302,7 @@ public class StratosApiV41 extends AbstractApi {
         StratosApiV41Utils.updateCartridge(cartridgeDefinitionBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeDefinitionBean.getType()).build();
         return Response.ok(url)
-                .entity(new StatusResponseBean(Response.Status.OK.getStatusCode(), "Cartridge updated successfully"))
+                .entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, "Cartridge updated successfully"))
                 .build();
 
     }
@@ -322,8 +322,8 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         List<CartridgeBean> cartridges = StratosApiV41Utils.getAvailableCartridges(null, false, getConfigContext());
         if (cartridges == null || cartridges.isEmpty()) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No cartridges found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No cartridges found")).build();
         }
         CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
         return Response.ok().entity(cartridgeArray).build();
@@ -348,8 +348,8 @@ public class StratosApiV41 extends AbstractApi {
             cartridge = StratosApiV41Utils.getCartridge(cartridgeType);
             return Response.ok().entity(cartridge).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Cartridge not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Cartridge not found")).build();
         }
     }
 
@@ -372,8 +372,8 @@ public class StratosApiV41 extends AbstractApi {
         List<CartridgeBean> cartridges = StratosApiV41Utils.
                 getCartridgesByFilter(filter, criteria, getConfigContext());
         if (cartridges == null || cartridges.isEmpty()) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No cartridges found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No cartridges found")).build();
         }
 
         CartridgeBean[] cartridgeArray = cartridges.toArray(new CartridgeBean[cartridges.size()]);
@@ -400,8 +400,8 @@ public class StratosApiV41 extends AbstractApi {
 
         cartridge = StratosApiV41Utils.getCartridgeByFilter(filter, cartridgeType, getConfigContext());
         if (cartridge == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No cartridges found for this filter")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No cartridges found for this filter")).build();
         }
         return Response.ok().entity(cartridge).build();
 
@@ -422,7 +422,7 @@ public class StratosApiV41 extends AbstractApi {
     public Response removeCartridge(
             @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
         StratosApiV41Utils.removeCartridge(cartridgeType);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Cartridge deleted successfully: [cartridge-type] %s", cartridgeType))).build();
 
     }
@@ -448,19 +448,19 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addServiceGroup(serviceGroupDefinition);
             URI url = uriInfo.getAbsolutePathBuilder().path(serviceGroupDefinition.getName()).build();
 
-            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Cartridge Group added successfully: [cartridge-group] %s",
                             serviceGroupDefinition.getName()))).build();
         } catch (InvalidCartridgeGroupDefinitionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), e.getMessage())).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, e.getMessage())).build();
         } catch (RestAPIException e) {
             if (e.getCause().getMessage().contains("already exists")) {
-                return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                        Response.Status.CONFLICT.getStatusCode(), "Cartridge group not found")).build();
+                return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                        ResponseMessageBean.ERROR, "Cartridge group not found")).build();
             } else if (e.getCause().getMessage().contains("Invalid Service Group")) {
-                return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                        Response.Status.BAD_REQUEST.getStatusCode(), e.getCause().getMessage())).build();
+                return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                        ResponseMessageBean.ERROR, e.getCause().getMessage())).build();
             } else {
                 throw e;
             }
@@ -486,8 +486,8 @@ public class StratosApiV41 extends AbstractApi {
         if (serviceGroupDefinition != null) {
             return Response.ok().entity(serviceGroupDefinition).build();
         } else {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Cartridge group not found")).build();
         }
     }
 
@@ -509,8 +509,8 @@ public class StratosApiV41 extends AbstractApi {
         if (serviceGroups != null) {
             return Response.ok().entity(serviceGroups).build();
         } else {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Cartridge group not found")).build();
         }
     }
 
@@ -532,10 +532,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeServiceGroup(groupDefinitionName);
         } catch (AutoscalerServiceCartridgeGroupNotFoundExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Cartridge group not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Cartridge group not found")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Cartridge Group deleted successfully: [cartridge-group] %s", groupDefinitionName)))
                 .build();
     }
@@ -561,12 +561,12 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addNetworkPartition(networkPartitionBean);
         } catch (CloudControllerServiceNetworkPartitionAlreadyExistsExceptionException e) {
             return Response.status(Response.Status.CONFLICT)
-                    .entity(new StatusResponseBean(Response.Status.CONFLICT.getStatusCode(), e.getLocalizedMessage()))
+                    .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, e.getMessage()))
                     .build();
 
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(networkPartitionId).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Network partition added successfully: [network-partition] %s", networkPartitionId)))
                 .build();
     }
@@ -586,8 +586,8 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         NetworkPartitionBean[] networkPartitions = StratosApiV41Utils.getNetworkPartitions();
         if (networkPartitions == null || networkPartitions.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No network partitions found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No network partitions found")).build();
         }
 
         return Response.ok(networkPartitions).build();
@@ -608,8 +608,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("networkPartitionId") String networkPartitionId) throws RestAPIException {
         NetworkPartitionBean networkPartition = StratosApiV41Utils.getNetworkPartition(networkPartitionId);
         if (networkPartition == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Network partition is not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Network partition is not found")).build();
         }
 
         return Response.ok(networkPartition).build();
@@ -631,11 +631,11 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeNetworkPartition(networkPartitionId);
         } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Network partition is not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Network partition is not found")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
-                String.format("Network Partition deleted successfully: [network-partition] %s",
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Network partition deleted successfully: [network-partition] %s",
                         networkPartitionId))).build();
     }
 
@@ -658,13 +658,13 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
 
             URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
-            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application added successfully: [application] %s",
                             applicationDefinition.getApplicationId()))).build();
         } catch (ApplicationAlreadyExistException e) {
 
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), "Application already exists")).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application already exists")).build();
         } catch (RestAPIException e) {
 
             throw e;
@@ -688,7 +688,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(), getUsername(), getTenantDomain());
         URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationId()).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Application updated successfully: [application] %s",
                         applicationDefinition.getApplicationId()))).build();
 
@@ -709,8 +709,8 @@ public class StratosApiV41 extends AbstractApi {
     public Response getApplications() throws RestAPIException {
         List<ApplicationBean> applicationDefinitions = StratosApiV41Utils.getApplications();
         if (applicationDefinitions == null || applicationDefinitions.isEmpty()) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No applications found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No applications found")).build();
         }
 
         ApplicationBean[] applicationDefinitionsArray = applicationDefinitions
@@ -734,8 +734,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId);
         if (applicationDefinition == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Application not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application not found")).build();
         }
         return Response.ok(applicationDefinition).build();
     }
@@ -758,14 +758,12 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
             StratosApiV41Utils.deployApplication(applicationId, applicationPolicyId);
-            return Response.accepted().entity(new StatusResponseBean(Response.Status.ACCEPTED.getStatusCode(),
+            return Response.accepted().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application deployed successfully: [application] %s", applicationId))).build();
         } catch (ApplicationAlreadyDeployedException e) {
-
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), "Application policy already deployed")).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application policy already deployed")).build();
         } catch (RestAPIException e) {
-
             throw e;
         }
     }
@@ -787,14 +785,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addApplicationPolicy(applicationPolicy);
             URI url = uriInfo.getAbsolutePathBuilder().path(applicationPolicy.getId()).build();
-            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application policy added successfully: [application-policy] %s",
                             applicationPolicy.getId()))).build();
         } catch (RestAPIException e) {
             throw e;
         } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid application policy")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Invalid application policy")).build();
         }
     }
 
@@ -860,16 +858,16 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
             StratosApiV41Utils.removeApplicationPolicy(applicationPolicyId);
-            return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+            return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application policy deleted successfully: [application-policy] %s",
                             applicationPolicyId))).build();
         } catch (ApplicationPolicyIdIsEmptyException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy id is empty"))
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy id is empty"))
                     .build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is invalid"))
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy is invalid"))
                     .build();
         }
     }
@@ -892,15 +890,15 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateApplicationPolicy(applicationPolicy);
         } catch (AutoscalerServiceInvalidApplicationPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid application policy"))
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Invalid application policy"))
                     .build();
         } catch (AutoscalerServiceApplicatioinPolicyNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Application policy does not exist"))
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application policy does not exist"))
                     .build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Application policy updated successfully: [application-policy] %s",
                         applicationPolicy.getId()))).build();
     }
@@ -923,8 +921,8 @@ public class StratosApiV41 extends AbstractApi {
         if (appNetworkPartitionsBean == null ||
                 (appNetworkPartitionsBean.getNetworkPartitionIds().size() == 1 &&
                         appNetworkPartitionsBean.getNetworkPartitionIds().get(0) == null)) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No network partitions used in the application"))
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "No network partitions used in the application"))
                     .build();
         }
 
@@ -949,7 +947,7 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         StratosApiV41Utils.addApplicationSignUp(applicationId, applicationSignUpBean);
         URI url = uriInfo.getAbsolutePathBuilder().path(applicationId).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Successfully signed up for: [application] %s", applicationId))).build();
     }
 
@@ -972,15 +970,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             applicationSignUpBean = StratosApiV41Utils.getApplicationSignUp(applicationId);
             if (applicationSignUpBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                        Response.Status.NOT_FOUND.getStatusCode(), "No Application sign ups found for application"))
+                return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                        ResponseMessageBean.ERROR, "No Application signups found for application"))
                         .build();
             }
-
             return Response.ok(applicationSignUpBean).build();
         } catch (ApplicationSignUpRestAPIException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to get application sign ups"))
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Incorrect request to get application sign ups"))
                     .build();
         }
     }
@@ -1000,7 +997,7 @@ public class StratosApiV41 extends AbstractApi {
     public Response removeApplicationSignUp(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         StratosApiV41Utils.removeApplicationSignUp(applicationId);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Application sign up removed successfully: [application] %s", applicationId))).build();
     }
 
@@ -1023,8 +1020,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addApplicationDomainMappings(applicationId, domainMappingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to add domain mapping for " +
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Incorrect request to add domain mapping for " +
                     "application")).build();
         }
         List<DomainMappingBean> mappings = domainMappingsBean.getDomainMappings();
@@ -1033,8 +1030,8 @@ public class StratosApiV41 extends AbstractApi {
             domainMappingList.add(domainMappingBean.getDomainName());
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(applicationId).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
-                String.format("Domain Mappings added successfully: [domain-mappings] %s", domainMappingList)))
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Domain mappings added successfully: [domain-mappings] %s", domainMappingList)))
                 .build();
     }
 
@@ -1057,8 +1054,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeApplicationDomainMappings(applicationId, domainMapppingsBean);
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to delete domain mapping of " +
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Incorrect request to delete domain mapping of " +
                     "application")).build();
         }
         List<DomainMappingBean> mappings = domainMapppingsBean.getDomainMappings();
@@ -1066,8 +1063,8 @@ public class StratosApiV41 extends AbstractApi {
         for (DomainMappingBean domainMappingBean : mappings) {
             domainMappingList.add(domainMappingBean.getDomainName());
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
-                String.format("Domain Mappings deleted successfully: [domain-mappings] %s", domainMappingList)))
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Domain mappings deleted successfully: [domain-mappings] %s", domainMappingList)))
                 .build();
     }
 
@@ -1089,13 +1086,14 @@ public class StratosApiV41 extends AbstractApi {
         try {
             domainMappingsBeanList = StratosApiV41Utils.getApplicationDomainMappings(applicationId);
             if (domainMappingsBeanList == null || domainMappingsBeanList.isEmpty()) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                        Response.Status.NOT_FOUND.getStatusCode(), "No domain mappings found for the application"))
-                        .build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                        ResponseMessageBean.SUCCESS, "No domain mappings found for the application: [application-id] " +
+                applicationId)).build();
             }
         } catch (StratosManagerServiceDomainMappingExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Incorrect request to get domain mapping of application"))
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Incorrect request to get domain mappings of application: " +
+                    "[application-id] " + applicationId))
                     .build();
         }
 
@@ -1125,19 +1123,19 @@ public class StratosApiV41 extends AbstractApi {
         if (applicationDefinition == null) {
             String msg = String.format("Application does not exist [application-id] %s", applicationId);
             log.info(msg);
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), msg)).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, msg)).build();
         }
         if (!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_DEPLOYED)) {
             String message = String.format("Could not undeploy since application is not in DEPLOYED status " +
                     "[application-id] %s [current status] %S", applicationId, applicationDefinition.getStatus());
             log.info(message);
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), message)).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, message)).build();
         }
         StratosApiV41Utils.undeployApplication(applicationId, force);
-        return Response.accepted().entity(new StatusResponseBean(Response.Status.ACCEPTED.getStatusCode(),
-                String.format("Application undeployed successfully: [application] %s", applicationId))).build();
+        return Response.accepted().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Application undeployed successfully: [application-id] %s", applicationId))).build();
     }
 
     /**
@@ -1157,8 +1155,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId);
         if (applicationRuntime == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Application runtime not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application runtime not found")).build();
         } else {
             return Response.ok().entity(applicationRuntime).build();
         }
@@ -1182,18 +1180,18 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId);
         if (applicationDefinition == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Application not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Application not found")).build();
         }
 
         if (!applicationDefinition.getStatus().equalsIgnoreCase(StratosApiV41Utils.APPLICATION_STATUS_CREATED)) {
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(Response.Status.CONFLICT.
-                    getStatusCode(), String.format("Could not delete since application is not in CREATED state :" +
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(ResponseMessageBean.ERROR,
+                    String.format("Could not delete since application is not in CREATED state :" +
                     " [application] %s [current-status] %S", applicationId, applicationDefinition.getStatus()))).build();
         }
 
         StratosApiV41Utils.removeApplication(applicationId);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Application deleted successfully: [application] %s", applicationId))).build();
     }
 
@@ -1214,10 +1212,9 @@ public class StratosApiV41 extends AbstractApi {
             throws RestAPIException {
         AutoscalePolicyBean[] autoScalePolicies = StratosApiV41Utils.getAutoScalePolicies();
         if (autoScalePolicies == null || autoScalePolicies.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "No Autoscaling policies found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.SUCCESS, "No autoscaling policies found")).build();
         }
-
         return Response.ok().entity(autoScalePolicies).build();
     }
 
@@ -1237,8 +1234,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("autoscalePolicyId") String autoscalePolicyId) throws RestAPIException {
         AutoscalePolicyBean autoScalePolicy = StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId);
         if (autoScalePolicy == null) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.SUCCESS, "Autoscaling policy not found")).build();
         }
         return Response.ok().entity(autoScalePolicy).build();
     }
@@ -1261,15 +1258,15 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.addAutoscalingPolicy(autoscalePolicy);
             URI url = uriInfo.getAbsolutePathBuilder().path(autoscalePolicy.getId()).build();
-            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+            return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Autoscaling policy added successfully: [autoscale-policy] %s",
                             autoscalePolicy.getId()))).build();
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Provided Autoscaling policy is invalid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Provided Autoscaling policy is invalid")).build();
         } catch (AutoscalerServiceAutoScalingPolicyAlreadyExistExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), "Autoscaling policy already exists")).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy already exists")).build();
         } catch (RestAPIException e) {
             throw e;
         }
@@ -1293,10 +1290,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateAutoscalingPolicy(autoscalePolicy);
         } catch (AutoscalerServiceInvalidPolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is invalid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy is invalid")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Autoscaling policy updated successfully: [autoscale-policy] %s",
                         autoscalePolicy.getId()))).build();
     }
@@ -1319,10 +1316,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateNetworkPartition(networkPartition);
         } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Network partition not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Network partition not found")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Network Partition updated successfully: [network-partition] %s",
                         networkPartition.getId()))).build();
     }
@@ -1345,13 +1342,13 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeAutoscalingPolicy(autoscalingPolicyId);
         } catch (AutoscalerServiceUnremovablePolicyExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Autoscaling policy is in use")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy is in use")).build();
         } catch (AutoscalerServicePolicyDoesNotExistExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Autoscaling policy not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Autoscaling policy not found")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Autoscaling policy deleted successfully: [autoscale-policy] %s",
                         autoscalingPolicyId))).build();
     }
@@ -1374,8 +1371,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             ClusterBean clusterBean = StratosApiV41Utils.getClusterInfo(clusterId);
             if (clusterBean == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                        Response.Status.NOT_FOUND.getStatusCode(), "Cluster not found")).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                        ResponseMessageBean.SUCCESS, "Cluster not found")).build();
             } else {
                 return Response.ok().entity(clusterBean).build();
             }
@@ -1407,15 +1404,15 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.addTenant(tenantInfoBean);
 
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid email")).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Invalid email")).build();
         } catch (InvalidDomainException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid domain")).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Invalid domain")).build();
         }
         URI url = uriInfo.getAbsolutePathBuilder().path(tenantInfoBean.getTenantDomain()).build();
         return Response.created(url).entity(
-                new StatusResponseBean(Response.Status.CREATED.getStatusCode(), String.format(
+                new ResponseMessageBean(ResponseMessageBean.SUCCESS, String.format(
                         "Tenant added successfully: [tenant] %s", tenantInfoBean.getTenantDomain()))).build();
     }
 
@@ -1437,23 +1434,21 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateExistingTenant(tenantInfoBean);
         } catch (TenantNotFoundException ex) {
-            Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Tenant not found")).build();
+            Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Tenant not found")).build();
         } catch (InvalidEmailException e) {
-            Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Invalid email")).build();
+            Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Invalid email")).build();
         } catch (Exception e) {
             String msg = "Error in updating tenant " + tenantInfoBean.getTenantDomain();
             log.error(msg, e);
             throw new RestAPIException(msg);
         }
 
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
-                String.format("Tenant updated successfully: [tenant] %s", tenantInfoBean.getTenantDomain())))
-                .build();
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Tenant updated successfully: [tenant] %s", tenantInfoBean.getTenantDomain()))).build();
     }
 
-
     /**
      * Gets the tenant by domain.
      *
@@ -1473,17 +1468,15 @@ public class StratosApiV41 extends AbstractApi {
         try {
             TenantInfoBean tenantInfo = StratosApiV41Utils.getTenantByDomain(tenantDomain);
             if (tenantInfo == null) {
-                return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                        Response.Status.NOT_FOUND.getStatusCode(), "Tenant information not found")).build();
+                return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                        ResponseMessageBean.SUCCESS, "Tenant information not found")).build();
             }
-
             return Response.ok().entity(tenantInfo).build();
         } catch (Exception e) {
             return Response.status(Response.Status.NOT_FOUND).build();
         }
     }
 
-
     /**
      * Delete tenant.
      *
@@ -1501,9 +1494,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         return Response.status(Response.Status.NOT_ACCEPTABLE)
-                .entity(new StatusResponseBean(Response.Status.NOT_ACCEPTABLE.getStatusCode(),
+                .entity(new ResponseMessageBean(ResponseMessageBean.ERROR,
                         "Please use the tenant deactivate method")).build();
-
     }
 
     /**
@@ -1583,7 +1575,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         StratosApiV41Utils.activateTenant(tenantDomain);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Tenant activated successfully: [tenant] %s", tenantDomain))).build();
     }
 
@@ -1604,7 +1596,7 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
 
         StratosApiV41Utils.deactivateTenant(tenantDomain);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Tenant deactivated successfully: [tenant] %s", tenantDomain))).build();
     }
 
@@ -1629,7 +1621,7 @@ public class StratosApiV41 extends AbstractApi {
         }
 
         StratosApiV41Utils.notifyArtifactUpdatedEvent(payload);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Repository notification sent successfully"))).build();
     }
 
@@ -1653,7 +1645,7 @@ public class StratosApiV41 extends AbstractApi {
         StratosApiV41Utils.addUser(userInfoBean);
         log.info("Successfully added an user with Username " + userInfoBean.getUserName());
         URI url = uriInfo.getAbsolutePathBuilder().path(userInfoBean.getUserName()).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("User added successfully: [user] %s", userInfoBean.getUserName()))).build();
     }
 
@@ -1674,7 +1666,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.removeUser(userName);
         log.info("Successfully removed user: [username] " + userName);
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("User deleted successfully: [user] %s", userName))).build();
     }
 
@@ -1695,7 +1687,7 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.updateUser(userInfoBean);
         log.info("Successfully updated an user with Username " + userInfoBean.getUserName());
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("User updated successfully: [user] %s", userInfoBean.getUserName()))).build();
     }
 
@@ -1731,24 +1723,24 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/admin/manage/addKubernetesHostCluster")
+    @AuthorizationAction("/permission/admin/manage/addKubernetesCluster")
     public Response addKubernetesHostCluster(
             KubernetesClusterBean kubernetesCluster) throws RestAPIException {
 
         try {
             StratosApiV41Utils.addKubernetesCluster(kubernetesCluster);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterId()).build();
-            return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
-                    String.format("Kubernetes Host Cluster added successfully: [kub-host-cluster] %s",
+            return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                    String.format("Kubernetes cluster added successfully: [kub-host-cluster] %s",
                             kubernetesCluster.getClusterId()))).build();
         } catch (RestAPIException e) {
             throw e;
         } catch (CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException e) {
-            return Response.status(Response.Status.CONFLICT).entity(new StatusResponseBean(
-                    Response.Status.CONFLICT.getStatusCode(), "Kubernetes cluster already exists")).build();
+            return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster already exists")).build();
         } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) {
-            return Response.status(Response.Status.BAD_REQUEST).entity(new StatusResponseBean(
-                    Response.Status.BAD_REQUEST.getStatusCode(), "Kubernetes cluster is invalid")).build();
+            return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster is invalid")).build();
         }
     }
 
@@ -1771,9 +1763,8 @@ public class StratosApiV41 extends AbstractApi {
 
         StratosApiV41Utils.addKubernetesHost(kubernetesClusterId, kubernetesHost);
         URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesHost.getHostId()).build();
-        return Response.created(url).entity(new StatusResponseBean(Response.Status.CREATED.getStatusCode(),
-                String.format("Kubernetes Host added successfully: [kub-host] %s", kubernetesHost.getHostId())))
-                .build();
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Kubernetes host added successfully: [kub-host] %s", kubernetesHost.getHostId()))).build();
     }
 
     /**
@@ -1793,16 +1784,15 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateKubernetesMaster(kubernetesMaster);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesMaster.getHostId()).build();
-            return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
-                    String.format("Kubernetes Master updated successfully: [kub-master] %s",
+            return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                    String.format("Kubernetes master updated successfully: [kub-master] %s",
                             kubernetesMaster.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster not found")).build();
         }
     }
 
-    //TODO: Check need for this method
     @PUT
     @Path("/kubernetes/update/host")
     @Produces("application/json")
@@ -1813,12 +1803,12 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.updateKubernetesHost(kubernetesHost);
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesHost.getHostId()).build();
-            return Response.ok(url).entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+            return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Kubernetes Host updated successfully: [kub-host] %s",
                             kubernetesHost.getHostId()))).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes host not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes host not found")).build();
         }
     }
 
@@ -1833,14 +1823,12 @@ public class StratosApiV41 extends AbstractApi {
     @Produces("application/json")
     @Consumes("application/json")
     @AuthorizationAction("/permission/admin/manage/getKubernetesHostClusters")
-    public Response getKubernetesHostClusters()
-            throws RestAPIException {
+    public Response getKubernetesHostClusters() throws RestAPIException {
         KubernetesClusterBean[] availableKubernetesClusters = StratosApiV41Utils.getAvailableKubernetesClusters();
         if (availableKubernetesClusters == null || availableKubernetesClusters.length == 0) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes clusters not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.SUCCESS, "Kubernetes clusters not found")).build();
         }
-
         return Response.ok().entity(availableKubernetesClusters).build();
     }
 
@@ -1861,8 +1849,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesCluster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster not found")).build();
         }
     }
 
@@ -1883,8 +1871,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesHosts(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes hosts not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes hosts not found")).build();
         }
     }
 
@@ -1905,8 +1893,8 @@ public class StratosApiV41 extends AbstractApi {
         try {
             return Response.ok().entity(StratosApiV41Utils.getKubernetesMaster(kubernetesClusterId)).build();
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster not found")).build();
         }
     }
 
@@ -1928,11 +1916,11 @@ public class StratosApiV41 extends AbstractApi {
             StratosApiV41Utils.removeKubernetesCluster(kubernetesClusterId);
         } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
             return Response.status(Response.Status.NOT_FOUND)
-                    .entity(new StatusResponseBean(Response.Status.NOT_FOUND.getStatusCode(),
+                    .entity(new ResponseMessageBean(ResponseMessageBean.ERROR,
                             String.format("Could not find specified Kubernetes cluster: [kub-cluster] %s",
                                     kubernetesClusterId))).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Kubernetes Cluster removed successfully: [kub-cluster] %s", kubernetesClusterId)))
                 .build();
     }
@@ -1955,10 +1943,10 @@ public class StratosApiV41 extends AbstractApi {
         try {
             StratosApiV41Utils.removeKubernetesHost(kubernetesHostId);
         } catch (RestAPIException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new StatusResponseBean(
-                    Response.Status.NOT_FOUND.getStatusCode(), "Kubernetes cluster not found")).build();
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Kubernetes cluster not found")).build();
         }
-        return Response.ok().entity(new StatusResponseBean(Response.Status.OK.getStatusCode(),
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Kubernetes Host removed successfully: [kub-host] %s", kubernetesHostId)))
                 .build();
     }