diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
index 434c4a6775..25dd56e5ee 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.annotations/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0org.wso2.carbon.apimgt.annotations
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTbundleWSO2 Carbon - API Management AnnotationsWSO2 Carbon - API Management Custom Annotation Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
index 2ee4c6430e..be9f3e24ff 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension.api/pom.xml
@@ -21,12 +21,12 @@
apimgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTorg.wso2.carbon.apimgt.application.extension.apiwarWSO2 Carbon - API Application Management API
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
index 5f5009d25f..796d778c0f 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.application.extension/pom.xml
@@ -22,12 +22,12 @@
apimgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTorg.wso2.carbon.apimgt.application.extensionbundleWSO2 Carbon - API Application Management
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
index 3c3f3bbedb..96e1570cdb 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/pom.xml
@@ -21,13 +21,13 @@
apimgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0org.wso2.carbon.apimgt.handlers
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTbundleWSO2 Carbon - API Security Handler ComponentWSO2 Carbon - API Management Security Handler Module
diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
index 930a273601..9d2f558084 100644
--- a/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.webapp.publisher/pom.xml
@@ -22,13 +22,13 @@
apimgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0org.wso2.carbon.apimgt.webapp.publisher
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTbundleWSO2 Carbon - API Management Webapp PublisherWSO2 Carbon - API Management Webapp Publisher
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index 08e9388e81..fde22978fc 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,13 +22,13 @@
org.wso2.carbon.devicemgtcarbon-devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../../pom.xml4.0.0apimgt-extensions
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTpomWSO2 Carbon - API Management Extensions Componenthttp://wso2.org
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
index 2d6af3f10c..c91b714430 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgtorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
index 39f83e6a14..aed7787a27 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.cert.admin.api/pom.xml
@@ -22,7 +22,7 @@
certificate-mgtorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
index a2baaeb229..942faa3931 100644
--- a/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
+++ b/components/certificate-mgt/org.wso2.carbon.certificate.mgt.core/pom.xml
@@ -21,13 +21,13 @@
org.wso2.carbon.devicemgtcertificate-mgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml4.0.0org.wso2.carbon.certificate.mgt.core
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTbundleWSO2 Carbon - Certificate Management CoreWSO2 Carbon - Certificate Management Core
diff --git a/components/certificate-mgt/pom.xml b/components/certificate-mgt/pom.xml
index 30b0186238..6a5e3a4d1d 100644
--- a/components/certificate-mgt/pom.xml
+++ b/components/certificate-mgt/pom.xml
@@ -22,14 +22,14 @@
org.wso2.carbon.devicemgtcarbon-devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../../pom.xml4.0.0org.wso2.carbon.devicemgtcertificate-mgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOTpomWSO2 Carbon - Certificate Management Componenthttp://wso2.org
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
index 0fdf348315..b9bebfed03 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.device.type.deployer/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml
index ea9f8c173f..d7ee06a319 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.gcm/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
index 0ac6ea57a3..4090ceb837 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
index fb4e62bb66..9cc250c652 100644
--- a/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
+++ b/components/device-mgt-extensions/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp/pom.xml
@@ -22,7 +22,7 @@
device-mgt-extensionsorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt-extensions/pom.xml b/components/device-mgt-extensions/pom.xml
index 8f3b451be7..871f5a3935 100644
--- a/components/device-mgt-extensions/pom.xml
+++ b/components/device-mgt-extensions/pom.xml
@@ -22,7 +22,7 @@
carbon-devicemgtorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
index 4f96da0d4a..358e1f0ebe 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/pom.xml
@@ -3,7 +3,7 @@
org.wso2.carbon.devicemgtdevice-mgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
index 3cc2b79748..00bbf73e04 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.data.publisher/pom.xml
@@ -22,7 +22,7 @@
org.wso2.carbon.devicemgtdevice-mgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
index b572c746c5..7dee3b0012 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/pom.xml
@@ -22,7 +22,7 @@
device-mgtorg.wso2.carbon.devicemgt
- 2.0.14-SNAPSHOT
+ 2.0.15-SNAPSHOT../pom.xml
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java
deleted file mode 100644
index 3a0564bb06..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/Dashboard.java
+++ /dev/null
@@ -1,841 +0,0 @@
-package org.wso2.carbon.device.mgt.jaxrs.service.api;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import io.swagger.annotations.Authorization;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ResponseHeader;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Tag;
-import org.wso2.carbon.apimgt.annotations.api.Scope;
-import org.wso2.carbon.apimgt.annotations.api.Scopes;
-import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup;
-import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardGadgetDataWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardPaginationGadgetDataWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
-import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-/**
- * Device Analytics Dashboard related REST-APIs. This can be used to obtain device related analytics.
- */
-@SwaggerDefinition(
- info = @Info(
- version = "1.0.0",
- title = "",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = "name", value = "DeviceAnalyticsDashboard"),
- @ExtensionProperty(name = "context", value = "/api/device-mgt/v1.0/dashboard"),
- })
- }
- ),
- tags = {
- @Tag(name = "device_management", description = "Device Analytics Dashboard related APIs.")
- }
-)
-@Scopes(
- scopes = {
- @Scope(
- name = "Device Count Overview",
- description = "Device Count Overview",
- key = "perm:dashboard:count-overview",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Device Counts by Potential Vulnerabilities",
- description = "Device Counts by Potential Vulnerabilities",
- key = "perm:dashboard:vulnerabilities",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get the number of devices that have not complied to a policy",
- description = "Get the number of devices that have not complied to a policy",
- key = "perm:dashboard:non-compliant",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get the number of devices for a given device type, such as connectivity status, "
- + "potential vulnerability, platform, and ownership",
- description = "Get the number of devices for a given device type, such as connectivity status, "
- + "potential vulnerability, platform, and ownership",
- key = "perm:dashboard:by-groups",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get the number of devices that have not complied to a given policy based on a particular",
- description = "Get the number of devices that have not complied to a given policy based on a particular",
- key = "perm:dashboard:device-counts",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get the number of devices that have not complied to a given policy based on a particular"
- + " device type.",
- description = "Get the number of devices that have not complied to a given policy based on a " +
- "particular device type.",
- key = "perm:dashboard:filtered-count",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get the number of devices that have not complied to a given policy over the total"
- + " number of devices registered with WSO2 EMM.\n",
- description = "Get the number of devices that have not complied to a given policy over the total"
- + " number of devices registered with WSO2 EMM.\n",
- key = "perm:dashboard:non-compliant-count",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get device details of devices based on a particular device type.",
- description = "Get device details of devices based on a particular device type.",
- key = "perm:dashboard:details",
- permissions = {"/device-mgt/dashboard/view"}
- ),
- @Scope(
- name = "Get device details of non-compliant devices which do not comply to a given policy.",
- description = "Get device details of non-compliant devices which do not comply to a given policy.",
- key = "perm:dashboard:feature-non-compliant",
- permissions = {"/device-mgt/dashboard/view"}
- )
- }
-)
-@Path("/dashboard")
-@Api(value = "Device Analytics Dashboard",
- description = "Device Analytics Dashboard related information APIs are described here.")
-@Produces(MediaType.APPLICATION_JSON)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface Dashboard {
-
- String CONNECTIVITY_STATUS = "connectivity-status";
- String POTENTIAL_VULNERABILITY = "potential-vulnerability";
- String NON_COMPLIANT_FEATURE_CODE = "non-compliant-feature-code";
- String PLATFORM = "platform";
- String OWNERSHIP = "ownership";
- // Constants related to pagination
- String PAGINATION_ENABLED = "pagination-enabled";
- String START_INDEX = "start";
- String RESULT_COUNT = "length";
-
- @GET
- @Path("device-count-overview")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the details of registered devices in WSO2 IoT.",
- notes = "Get the details of active, inactive, removed and total number of registered devices in"
- + " WSO2 IoT.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:count-overview")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request. \n Invalid request or validation error.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getOverviewDeviceCounts();
-
- @GET
- @Path("device-counts-by-potential-vulnerabilities")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of unmonitored and non-compliant devices in WSO2 IoT.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:vulnerabilities")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request. \n Invalid request or validation error.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n Server error occurred while fetching activity data.",
- response = ErrorResponse.class)
- })
- Response getDeviceCountsByPotentialVulnerabilities();
-
- @GET
- @Path("non-compliant-device-counts-by-features")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of devices that have not complied to a policy that was enforced on a "
- + "device.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:non-compliant")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardPaginationGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request. \n",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found. \n",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getNonCompliantDeviceCountsByFeatures(
- @ApiParam(
- name = "start",
- value = "Provide the starting pagination index. Example 10",
- required = true)
- @QueryParam(START_INDEX) int startIndex,
- @ApiParam(
- name = "length",
- value = "Provide how many policy details you require from the starting pagination index."
- + " For example if you require the non-compliant policy details from the 10th "
- + "pagination index to the 15th, you must define 10 as the value for start and "
- + "5 as the value for length.",
- required = true)
- @QueryParam(RESULT_COUNT) int resultCount);
-
- @GET
- @Path("device-counts-by-groups")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of devices for a given device type, such as connectivity status, "
- + "potential vulnerability, platform, and ownership.\n",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:by-groups")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DeviceCountByGroup.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getDeviceCountsByGroups(
- @ApiParam(
- name = "connectivity-status",
- value = "Provide the connectivity status of the device. The following values can be assigned:\n"
- + "active: The devices that are registered with WSO2 IoT and are actively "
- + "communicating with the server.\n"
- + "inactive: The devices that are registered with WSO2 IoT but unable to "
- + "actively communicate with the server.\n"
- + "removed: The devices that have unregistered from WSO2 IoT",
- required = true)
- @QueryParam(CONNECTIVITY_STATUS) String connectivityStatus,
- @ApiParam(
- name = "potential-vulnerability",
- value = "Provide details of the potential vulnerabilities of the device. The following "
- + "values can be assigned:\n"
- + "non-compliant: Devices that have not complied to the policies enforced on the "
- + "device by WSO2 IoT.\n"
- + "unmonitored: Devices that have no policy assigned to them.",
- required = true)
- @QueryParam(POTENTIAL_VULNERABILITY) String potentialVulnerability,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. The following values can "
- + "be assigned:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = true)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. The following values can be assigned:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = true)
- @QueryParam(OWNERSHIP) String ownership);
-
- @GET
- @Path("feature-non-compliant-device-counts-by-groups")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of devices that have not complied to a given policy based on a particular"
- + " device type.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:device-counts")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DeviceCountByGroup.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getFeatureNonCompliantDeviceCountsByGroups(
- @ApiParam(
- name = "non-compliant-feature-code",
- value = "As the value for this parameter, the policy feature code or ID can be used. Some"
- + " examples for feature codes are: PASSCODE_POLICY,CAMERA and WIFI.",
- required = true)
- @QueryParam(NON_COMPLIANT_FEATURE_CODE) String nonCompliantFeatureCode,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. The following values can "
- + "be assigned:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = false)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. The following values can be assigned:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = false)
- @QueryParam(OWNERSHIP) String ownership);
-
- @GET
- @Path("filtered-device-count-over-total")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of devices that are registered with WSO2 IoT filtered by one of the "
- + "following attributes:\n"
- + "Connectivity status of the device, such as active, inactive or removed.\n"
- + "The device ownership type, such as BYOD or COPE.\n" + "The device platform.\n"
- + "The potential vulnerabilities faced by the devices.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:filtered-count")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getFilteredDeviceCountOverTotal(
- @ApiParam(
- name = "connectivity-status",
- value = "Provide the connectivity status of the device. You can assign any of the values "
- + "given below:\n"
- + "Total: All the devices that have registered with WSO2 IoT.\n"
- + "active: The devices that are registered with WSO2 IoT and are actively "
- + "communicating with the server.\n"
- + "inactive: The devices that are registered with WSO2 IoT but unable to actively"
- + " communicate with the server.\n"
- + "removed: The devices that have unregistered from WSO2 IoT.",
- required = true)
- @QueryParam(CONNECTIVITY_STATUS) String connectivityStatus,
- @ApiParam(
- name = "potential-vulnerability",
- value = "Provide details of the potential vulnerabilities of the device. You can assign"
- + " any of the values given below:\n"
- + "non-compliant: Devices that have not complied to the policies enforced on the "
- + "device by WSO2 IoT.\n"
- + "unmonitored: Devices that have no policy assigned to them.",
- required = true)
- @QueryParam(POTENTIAL_VULNERABILITY) String potentialVulnerability,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. You can assign any of the "
- + "values given below:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = true)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. You can assign any of the values "
- + "given below:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = true)
- @QueryParam(OWNERSHIP) String ownership);
-
- @GET
- @Path("feature-non-compliant-device-count-over-total")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get the number of devices that have not complied to a given policy over the total"
- + " number of devices registered with WSO2 IoT.\n",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:non-compliant-count")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getFeatureNonCompliantDeviceCountOverTotal(
- @ApiParam(
- name = "non-compliant-feature-code",
- value = "Provide the feature code or ID of the policy. Some examples for feature codes "
- + "are: WIFI, PASSCODE_POLICY, CAMERA and ENCRYPT_STORAGE.",
- required = true)
- @QueryParam(NON_COMPLIANT_FEATURE_CODE) String nonCompliantFeatureCode,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. You can assign the values "
- + "given below:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = true)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. You can assign the values given below:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = true)
- @QueryParam(OWNERSHIP) String ownership);
-
- @GET
- @Path("devices-with-details")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get device details of devices based on a particular device type.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:details")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardPaginationGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getDevicesWithDetails(
- @ApiParam(
- name = "connectivity-status",
- value = "Provide the connectivity status of the device. This can be one of the following:\n"
- + "Total: All the devices that have registered with WSO2 IoT.\n"
- + "active: The devices that are registered with WSO2 IoT and are actively "
- + "communicating with the server.\n"
- + "inactive: The devices that are registered with WSO2 IoT but unable to actively"
- + " communicate with the server.\n"
- + "removed: The devices that have unregistered from WSO2 IoT.",
- required = true)
- @QueryParam(CONNECTIVITY_STATUS) String connectivityStatus,
- @ApiParam(
- name = "potential-vulnerability",
- value = "Provide details of the potential vulnerabilities of the device. This can be:\n"
- + "non-compliant: Devices that have not complied to the policies enforced on "
- + "the device by WSO2 IoT.\n"
- + "unmonitored: Devices that have no policy assigned to them. ",
- required = true)
- @QueryParam(POTENTIAL_VULNERABILITY) String potentialVulnerability,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. This can be one of the following:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = true)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. This can be one of the following:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = true)
- @QueryParam(OWNERSHIP) String ownership,
- @ApiParam(
- name = "pagination-enabled",
- value = "To enable/disable pagination set the value as true or false",
- required = true)
- @QueryParam(PAGINATION_ENABLED) String paginationEnabled,
- @ApiParam(
- name = "start",
- value = "Provide the starting pagination index.",
- required = true)
- @QueryParam(START_INDEX) int startIndex,
- @ApiParam(
- name = "length",
- value = "Provide how many policy details you require from the starting pagination index.",
- required = true)
- @QueryParam(RESULT_COUNT) int resultCount);
-
- @GET
- @Path("feature-non-compliant-devices-with-details")
- @ApiOperation(
- produces = MediaType.APPLICATION_JSON,
- httpMethod = "GET",
- value = "Get device details of non-compliant devices which do not comply to a given policy.",
- tags = "Dashboard",
- extensions = {
- @Extension(properties = {
- @ExtensionProperty(name = Constants.SCOPE, value = "perm:dashboard:feature-non-compliant")
- })
- }
- )
- @ApiResponses(value = {
- @ApiResponse(
- code = 200,
- message = "OK.",
- response = DashboardPaginationGadgetDataWrapper.class,
- responseHeaders = {
- @ResponseHeader(
- name = "Content-Type",
- description = "The content type of the body"),
- @ResponseHeader(
- name = "ETag",
- description = "Entity Tag of the response resource.\n" +
- "Used by caches, or in conditional requests."),
- @ResponseHeader(
- name = "Last-Modified",
- description = "Date and time the resource has been modified the last time.\n" +
- "Used by caches, or in conditional requests."),
- }),
- @ApiResponse(
- code = 304,
- message = "Not Modified. \n Empty body because the client has already the latest version of " +
- "the requested resource."),
- @ApiResponse(
- code = 400,
- message = "Bad Request.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 401,
- message = "Unauthorized. \n Unauthorized request."),
- @ApiResponse(
- code = 404,
- message = "Not Found.",
- response = ErrorResponse.class),
- @ApiResponse(
- code = 406,
- message = "Not Acceptable.\n The requested media type is not supported"),
- @ApiResponse(
- code = 500,
- message = "Internal Server Error. \n ErrorResponse in retrieving requested data.",
- response = ErrorResponse.class)
- })
- Response getFeatureNonCompliantDevicesWithDetails(
- @ApiParam(
- name = "non-compliant-feature-code",
- value = "Provide the code specific to the feature "
- + "(examples for feature codes are: WIFI,PASSCODE_POLICY, CAMERA and ENCRYPT_STORAGE.)",
- required = true)
- @QueryParam(NON_COMPLIANT_FEATURE_CODE) String nonCompliantFeatureCode,
- @ApiParam(
- name = "platform",
- value = "Provide the platform that the device is running on. This can be one of the following:\n"
- + "iOS\n" + "Android\n" + "Windows",
- required = true)
- @QueryParam(PLATFORM) String platform,
- @ApiParam(
- name = "ownership",
- value = "Provide the ownership status of the device. This can be one of the following:\n"
- + "BYOD: Bring Your Own Device\n" + "COPE: Corporate-Owned, Personally-Enabled",
- required = true)
- @QueryParam(OWNERSHIP) String ownership,
- @ApiParam(
- name = "pagination-enabled",
- value = "To enable/disable pagination set the value as true or false",
- required = true)
- @QueryParam(PAGINATION_ENABLED) String paginationEnabled,
- @ApiParam(
- name = "start",
- value = "Provide the starting pagination index.",
- required = true)
- @QueryParam(START_INDEX) int startIndex,
- @ApiParam(
- name = "length",
- value = "Provide how many policy details you require from the starting pagination index.",
- required = true)
- @QueryParam(RESULT_COUNT) int resultCount);
-}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java
index 05a22be16d..b655b7b26b 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceManagementService.java
@@ -18,32 +18,40 @@
*/
package org.wso2.carbon.device.mgt.jaxrs.service.api;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.Tag;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
+import io.swagger.annotations.Extension;
+import io.swagger.annotations.ExtensionProperty;
+import io.swagger.annotations.Info;
import io.swagger.annotations.ResponseHeader;
+import io.swagger.annotations.SwaggerDefinition;
+import io.swagger.annotations.Tag;
import org.wso2.carbon.apimgt.annotations.api.Scope;
import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.Feature;
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
+import org.wso2.carbon.device.mgt.common.policy.mgt.Policy;
+import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.NonComplianceData;
import org.wso2.carbon.device.mgt.common.search.SearchContext;
import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList;
import org.wso2.carbon.device.mgt.jaxrs.beans.ErrorResponse;
import org.wso2.carbon.device.mgt.jaxrs.util.Constants;
-import org.wso2.carbon.device.mgt.common.policy.mgt.Policy;
-import org.wso2.carbon.device.mgt.common.policy.mgt.monitor.NonComplianceData;
import javax.validation.constraints.Size;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -141,7 +149,7 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting Details of Registered Devices",
- notes = "Provides details of all the devices enrolled with WSO2 EMM.",
+ notes = "Provides details of all the devices enrolled with WSO2 IoT Server.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@@ -266,6 +274,71 @@ public interface DeviceManagementService {
@QueryParam("limit")
int limit);
+ @GET
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of Registered Devices owned by authenticated user",
+ notes = "Provides details of devices enrolled by authenticated user.",
+ tags = "Device Management",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:view")
+ })
+ }
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK. \n Successfully fetched the list of devices.",
+ response = DeviceList.class,
+ responseHeaders = {
+ @ResponseHeader(
+ name = "Content-Type",
+ description = "The content type of the body"),
+ @ResponseHeader(
+ name = "ETag",
+ description = "Entity Tag of the response resource.\n" +
+ "Used by caches, or in conditional requests."),
+ @ResponseHeader(
+ name = "Last-Modified",
+ description = "Date and time the resource was last modified.\n" +
+ "Used by caches, or in conditional requests."),
+ }),
+ @ApiResponse(
+ code = 304,
+ message = "Not Modified. \n Empty body because the client already has the latest version of " +
+ "the requested resource.\n"),
+ @ApiResponse(
+ code = 400,
+ message = "The incoming request has more than one selection criteria defined via the query parameters.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 404,
+ message = "The search criteria did not match any device registered with the server.",
+ response = ErrorResponse.class),
+ @ApiResponse(
+ code = 406,
+ message = "Not Acceptable.\n The requested media type is not supported."),
+ @ApiResponse(
+ code = 500,
+ message = "Internal Server Error. \n Server error occurred while fetching the device list.",
+ response = ErrorResponse.class)
+ })
+ @Path("/user-devices")
+ Response getDeviceByUser(
+ @ApiParam(
+ name = "offset",
+ value = "The starting pagination index for the complete list of qualified items.",
+ required = false,
+ defaultValue = "0")
+ @QueryParam("offset")
+ int offset,
+ @ApiParam(
+ name = "limit",
+ value = "Provide how many device details you require from the starting pagination index/offset.",
+ required = false,
+ defaultValue = "5")
+ @QueryParam("limit")
+ int limit);
@GET
@Path("/{type}/{id}")
@@ -321,9 +394,8 @@ public interface DeviceManagementService {
Response getDevice(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
@@ -556,9 +628,8 @@ public interface DeviceManagementService {
Response getFeaturesOfDevice(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
@@ -723,9 +794,8 @@ public interface DeviceManagementService {
Response getInstalledApplications(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
@@ -825,9 +895,8 @@ public interface DeviceManagementService {
Response getDeviceOperations(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
@@ -936,9 +1005,8 @@ public interface DeviceManagementService {
Response getEffectivePolicyOfDevice(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java
index 83566b6f12..b71c918fca 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/DeviceTypeManagementService.java
@@ -192,9 +192,8 @@ public interface DeviceTypeManagementService {
Response getFeatures(
@ApiParam(
name = "type",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("type")
@Size(max = 45)
String type,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java
index 51a6dae87c..a815304fb0 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/GroupManagementService.java
@@ -204,10 +204,6 @@ public interface GroupManagementService {
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."),
- @ApiResponse(
- code = 404,
- message = "No groups found.",
- response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported."),
@@ -219,19 +215,25 @@ public interface GroupManagementService {
Response getGroups(@ApiParam(
name = "name",
value = "Name of the group.")
- @QueryParam("name") String name,
+ @QueryParam("name")
+ String name,
@ApiParam(
name = "owner",
value = "Owner of the group.")
- @QueryParam("owner") String owner,
+ @QueryParam("owner")
+ String owner,
@ApiParam(
name = "offset",
- value = "Starting point within the complete list of items qualified.")
- @QueryParam("offset") int offset,
+ value = "The starting pagination index for the complete list of qualified items.",
+ defaultValue = "0")
+ @QueryParam("offset")
+ int offset,
@ApiParam(
name = "limit",
- value = "Maximum size of resource array to return.")
- @QueryParam("limit") int limit);
+ value = "Provide how many device details you require from the starting pagination index/offset.",
+ defaultValue = "5")
+ @QueryParam("limit")
+ int limit);
@Path("/count")
@GET
@@ -268,10 +270,6 @@ public interface GroupManagementService {
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."),
- @ApiResponse(
- code = 404,
- message = "No groups found.",
- response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported."),
@@ -383,7 +381,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -435,7 +433,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group not found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -492,7 +490,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group not found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -544,7 +542,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group not found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -601,7 +599,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group not found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -653,7 +651,7 @@ public interface GroupManagementService {
"the requested resource."),
@ApiResponse(
code = 404,
- message = "No groups found.",
+ message = "Group not found.",
response = ErrorResponse.class),
@ApiResponse(
code = 406,
@@ -667,15 +665,20 @@ public interface GroupManagementService {
name = "groupId",
value = "ID of the group.",
required = true)
- @PathParam("groupId") int groupId,
+ @PathParam("groupId")
+ int groupId,
@ApiParam(
name = "offset",
- value = "Starting point within the complete list of items qualified.")
- @QueryParam("offset") int offset,
+ value = "The starting pagination index for the complete list of qualified items.",
+ defaultValue = "0")
+ @QueryParam("offset")
+ int offset,
@ApiParam(
name = "limit",
- value = "Maximum size of resource array to return.")
- @QueryParam("limit") int limit);
+ value = "Provide how many device details you require from the starting pagination index/offset.",
+ defaultValue = "5")
+ @QueryParam("limit")
+ int limit);
@Path("/id/{groupId}/devices/count")
@GET
@@ -926,10 +929,6 @@ public interface GroupManagementService {
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."),
- @ApiResponse(
- code = 404,
- message = "No groups found.",
- response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported."),
@@ -941,11 +940,15 @@ public interface GroupManagementService {
Response getGroups(
@ApiParam(
name = "deviceId",
- value = "Id of the device.")
- @QueryParam("deviceId") String deviceId,
+ value = "Id of the device.",
+ required = true)
+ @QueryParam("deviceId")
+ String deviceId,
@ApiParam(
name = "deviceType",
- value = "Type of the device.")
- @QueryParam("deviceType") String deviceType);
+ value = "Type of the device.",
+ required = true)
+ @QueryParam("deviceType")
+ String deviceType);
}
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
index 8656456f1f..ed49af08cc 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/PolicyManagementService.java
@@ -672,9 +672,8 @@ public interface PolicyManagementService {
Response getEffectivePolicy(
@ApiParam(
name = "deviceType",
- value = "The device type, such as ios, android or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
index 14a34d3520..0ac0677151 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/DeviceManagementAdminService.java
@@ -136,9 +136,8 @@ public interface DeviceManagementAdminService {
String name,
@ApiParam(
name = "type",
- value = "The type of the device, such as android, ios or windows.",
- required = true,
- allowableValues = "android, ios, windows")
+ value = "The device type name, such as ios, android, windows or fire-alarm.",
+ required = true)
@QueryParam("type")
@Size(min = 2, max = 45)
String type,
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java
index 64020ce56e..3e47728c3d 100644
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java
+++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/api/admin/GroupManagementAdminService.java
@@ -113,10 +113,6 @@ public interface GroupManagementAdminService {
code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."),
- @ApiResponse(
- code = 404,
- message = "No groups found.",
- response = ErrorResponse.class),
@ApiResponse(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported."),
@@ -128,19 +124,25 @@ public interface GroupManagementAdminService {
Response getGroups(@ApiParam(
name = "name",
value = "Name of the group.")
- @QueryParam("name") String name,
+ @QueryParam("name")
+ String name,
@ApiParam(
name = "owner",
value = "Owner of the group.")
- @QueryParam("owner") String owner,
+ @QueryParam("owner")
+ String owner,
@ApiParam(
name = "offset",
- value = "Starting point within the complete list of items qualified.")
- @QueryParam("offset") int offset,
+ value = "The starting pagination index for the complete list of qualified items.",
+ defaultValue = "0")
+ @QueryParam("offset")
+ int offset,
@ApiParam(
name = "limit",
- value = "Maximum size of resource array to return.")
- @QueryParam("limit") int limit);
+ value = "Provide how many device details you require from the starting pagination index/offset.",
+ defaultValue = "5")
+ @QueryParam("limit")
+ int limit);
@Path("/count")
@GET
diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java
deleted file mode 100644
index c6940599ed..0000000000
--- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/DashboardImpl.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. 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.wso2.carbon.device.mgt.jaxrs.service.impl;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.analytics.dashboard.GadgetDataService;
-import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet;
-import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup;
-import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails;
-import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet;
-import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*;
-import org.wso2.carbon.device.mgt.common.PaginationResult;
-import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils;
-import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardGadgetDataWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.beans.DashboardPaginationGadgetDataWrapper;
-import org.wso2.carbon.device.mgt.jaxrs.service.api.Dashboard;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.Response;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.wso2.carbon.device.mgt.analytics.dashboard.util.APIUtil.getAuthenticatedUser;
-
-/**
- * This class consists of dashboard related REST APIs
- * to be consumed by individual client gadgets such as
- * [1] Overview of Devices,
- * [2] Potential Vulnerabilities,
- * [3] Non-compliant Devices by Features,
- * [4] Device Groupings and etc.
- */
-
-@Consumes({"application/json"})
-@Produces({"application/json"})
-
-@SuppressWarnings("NonJaxWsWebServices")
-public class DashboardImpl implements Dashboard {
-
- private static Log log = LogFactory.getLog(DashboardImpl.class);
-
- private static final String FLAG_TRUE = "true";
- private static final String FLAG_FALSE = "false";
- // Constants related to common error-response messages
- private static final String INVALID_QUERY_PARAM_VALUE_POTENTIAL_VULNERABILITY = "Received an invalid value for " +
- "query parameter : " + POTENTIAL_VULNERABILITY + ", Should be either NON_COMPLIANT or UNMONITORED.";
- private static final String INVALID_QUERY_PARAM_VALUE_START_INDEX = "Received an invalid value for " +
- "query parameter : " + START_INDEX + ", Should not be lesser than 0.";
- private static final String INVALID_QUERY_PARAM_VALUE_RESULT_COUNT = "Received an invalid value for " +
- "query parameter : " + RESULT_COUNT + ", Should not be lesser than 5.";
- private static final String INVALID_QUERY_PARAM_VALUE_PAGINATION_ENABLED = "Received an invalid value for " +
- "query parameter : " + PAGINATION_ENABLED + ", Should be either true or false.";
- private static final String REQUIRED_QUERY_PARAM_VALUE_NON_COMPLIANT_FEATURE_CODE = "Missing required query " +
- "parameter : " + NON_COMPLIANT_FEATURE_CODE;
- private static final String REQUIRED_QUERY_PARAM_VALUE_PAGINATION_ENABLED = "Missing required query " +
- "parameter : " + PAGINATION_ENABLED;
- private static final String ERROR_IN_RETRIEVING_REQUESTED_DATA = "ErrorResponse in retrieving requested data.";
-
- @GET
- @Path("device-count-overview")
- public Response getOverviewDeviceCounts() {
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper1 = new DashboardGadgetDataWrapper();
-
- // getting total device count
- DeviceCountByGroup totalDeviceCount;
- try {
- String userName = getAuthenticatedUser();
- totalDeviceCount = gadgetDataService.getTotalDeviceCount(userName);
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve total device count.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- List totalDeviceCountInListEntry = new ArrayList<>();
- totalDeviceCountInListEntry.add(totalDeviceCount);
-
- dashboardGadgetDataWrapper1.setContext("Total-device-count");
- dashboardGadgetDataWrapper1.setGroupingAttribute(null);
- dashboardGadgetDataWrapper1.setData(totalDeviceCountInListEntry);
-
- // getting device counts by connectivity statuses
- List deviceCountsByConnectivityStatuses;
- try {
- String userName = getAuthenticatedUser();
- deviceCountsByConnectivityStatuses = gadgetDataService.getDeviceCountsByConnectivityStatuses(userName);
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve device counts by connectivity statuses.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper2 = new DashboardGadgetDataWrapper();
-
- dashboardGadgetDataWrapper2.setContext("Device-counts-by-connectivity-statuses");
- dashboardGadgetDataWrapper2.setGroupingAttribute(CONNECTIVITY_STATUS);
- dashboardGadgetDataWrapper2.setData(deviceCountsByConnectivityStatuses);
-
- List responsePayload = new ArrayList<>();
- responsePayload.add(dashboardGadgetDataWrapper1);
- responsePayload.add(dashboardGadgetDataWrapper2);
-
- return Response.status(HttpStatus.SC_OK).entity(responsePayload).build();
- }
-
- @GET
- @Path("device-counts-by-potential-vulnerabilities")
- public Response getDeviceCountsByPotentialVulnerabilities() {
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
-
- List deviceCountsByPotentialVulnerabilities;
- try {
- String userName = getAuthenticatedUser();
- deviceCountsByPotentialVulnerabilities = gadgetDataService.getDeviceCountsByPotentialVulnerabilities(userName);
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve device counts by potential vulnerabilities.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper = new DashboardGadgetDataWrapper();
- dashboardGadgetDataWrapper.setContext("Device-counts-by-potential-vulnerabilities");
- dashboardGadgetDataWrapper.setGroupingAttribute(POTENTIAL_VULNERABILITY);
- dashboardGadgetDataWrapper.setData(deviceCountsByPotentialVulnerabilities);
-
- List responsePayload = new ArrayList<>();
- responsePayload.add(dashboardGadgetDataWrapper);
-
- return Response.status(HttpStatus.SC_OK).entity(responsePayload).build();
- }
-
- @GET
- @Path("non-compliant-device-counts-by-features")
- public Response getNonCompliantDeviceCountsByFeatures(@QueryParam(START_INDEX) int startIndex,
- @QueryParam(RESULT_COUNT) int resultCount) {
-
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
- DashboardPaginationGadgetDataWrapper
- dashboardPaginationGadgetDataWrapper = new DashboardPaginationGadgetDataWrapper();
-
- PaginationResult paginationResult;
- try {
- String userName = getAuthenticatedUser();
- paginationResult = gadgetDataService.
- getNonCompliantDeviceCountsByFeatures(startIndex, resultCount, userName);
- } catch (InvalidStartIndexValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a non-compliant set " +
- "of device counts by features.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).entity(INVALID_QUERY_PARAM_VALUE_START_INDEX).build();
- } catch (InvalidResultCountValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a non-compliant set " +
- "of device counts by features.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).entity(INVALID_QUERY_PARAM_VALUE_RESULT_COUNT).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a non-compliant set of device counts by features.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- dashboardPaginationGadgetDataWrapper.setContext("Non-compliant-device-counts-by-features");
- dashboardPaginationGadgetDataWrapper.setGroupingAttribute(NON_COMPLIANT_FEATURE_CODE);
- dashboardPaginationGadgetDataWrapper.setData(paginationResult.getData());
- dashboardPaginationGadgetDataWrapper.setTotalRecordCount(paginationResult.getRecordsTotal());
-
- List responsePayload = new ArrayList<>();
- responsePayload.add(dashboardPaginationGadgetDataWrapper);
-
- return Response.status(HttpStatus.SC_OK).entity(responsePayload).build();
- }
-
- @GET
- @Path("device-counts-by-groups")
- public Response getDeviceCountsByGroups(@QueryParam(CONNECTIVITY_STATUS) String connectivityStatus,
- @QueryParam(POTENTIAL_VULNERABILITY) String potentialVulnerability,
- @QueryParam(PLATFORM) String platform,
- @QueryParam(OWNERSHIP) String ownership) {
-
- // getting gadget data service
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
-
- // constructing filter set
- ExtendedFilterSet filterSet = new ExtendedFilterSet();
- filterSet.setConnectivityStatus(connectivityStatus);
- filterSet.setPotentialVulnerability(potentialVulnerability);
- filterSet.setPlatform(platform);
- filterSet.setOwnership(ownership);
-
- // creating device-Counts-by-platforms Data Wrapper
- List deviceCountsByPlatforms;
- try {
- String userName = getAuthenticatedUser();
- deviceCountsByPlatforms = gadgetDataService.getDeviceCountsByPlatforms(filterSet, userName);
- } catch (InvalidPotentialVulnerabilityValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a filtered set of device counts by platforms.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).
- entity(INVALID_QUERY_PARAM_VALUE_POTENTIAL_VULNERABILITY).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered set of device counts by platforms.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper1 = new DashboardGadgetDataWrapper();
- dashboardGadgetDataWrapper1.setContext("Device-counts-by-platforms");
- dashboardGadgetDataWrapper1.setGroupingAttribute(PLATFORM);
- dashboardGadgetDataWrapper1.setData(deviceCountsByPlatforms);
-
- // creating device-Counts-by-ownership-types Data Wrapper
- List deviceCountsByOwnerships;
- try {
- String userName = getAuthenticatedUser();
- deviceCountsByOwnerships = gadgetDataService.getDeviceCountsByOwnershipTypes(filterSet, userName);
- } catch (InvalidPotentialVulnerabilityValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a filtered set of device counts by ownerships.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).
- entity(INVALID_QUERY_PARAM_VALUE_POTENTIAL_VULNERABILITY).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered set of device counts by ownerships.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper2 = new DashboardGadgetDataWrapper();
- dashboardGadgetDataWrapper2.setContext("Device-counts-by-ownerships");
- dashboardGadgetDataWrapper2.setGroupingAttribute(OWNERSHIP);
- dashboardGadgetDataWrapper2.setData(deviceCountsByOwnerships);
-
- List responsePayload = new ArrayList<>();
- responsePayload.add(dashboardGadgetDataWrapper1);
- responsePayload.add(dashboardGadgetDataWrapper2);
-
- return Response.status(HttpStatus.SC_OK).entity(responsePayload).build();
- }
-
- @GET
- @Path("feature-non-compliant-device-counts-by-groups")
- public Response getFeatureNonCompliantDeviceCountsByGroups(@QueryParam(NON_COMPLIANT_FEATURE_CODE) String nonCompliantFeatureCode,
- @QueryParam(PLATFORM) String platform,
- @QueryParam(OWNERSHIP) String ownership) {
- // getting gadget data service
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
-
- // constructing filter set
- BasicFilterSet filterSet = new BasicFilterSet();
- filterSet.setPlatform(platform);
- filterSet.setOwnership(ownership);
-
- // creating feature-non-compliant-device-Counts-by-platforms Data Wrapper
- List featureNonCompliantDeviceCountsByPlatforms;
- try {
- String userName = getAuthenticatedUser();
- featureNonCompliantDeviceCountsByPlatforms = gadgetDataService.
- getFeatureNonCompliantDeviceCountsByPlatforms(nonCompliantFeatureCode, filterSet, userName);
- } catch (InvalidFeatureCodeValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a filtered set of feature " +
- "non-compliant device counts by platforms.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).
- entity(REQUIRED_QUERY_PARAM_VALUE_NON_COMPLIANT_FEATURE_CODE).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered set of feature non-compliant " +
- "device counts by platforms.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper1 = new DashboardGadgetDataWrapper();
- dashboardGadgetDataWrapper1.setContext("Feature-non-compliant-device-counts-by-platforms");
- dashboardGadgetDataWrapper1.setGroupingAttribute(PLATFORM);
- dashboardGadgetDataWrapper1.setData(featureNonCompliantDeviceCountsByPlatforms);
-
- // creating feature-non-compliant-device-Counts-by-ownership-types Data Wrapper
- List featureNonCompliantDeviceCountsByOwnerships;
- try {
- String userName = getAuthenticatedUser();
- featureNonCompliantDeviceCountsByOwnerships = gadgetDataService.
- getFeatureNonCompliantDeviceCountsByOwnershipTypes(nonCompliantFeatureCode, filterSet, userName);
- } catch (InvalidFeatureCodeValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered set of feature " +
- "non-compliant device counts by ownerships.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).
- entity(REQUIRED_QUERY_PARAM_VALUE_NON_COMPLIANT_FEATURE_CODE).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered set of feature non-compliant " +
- "device counts by ownerships.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- DashboardGadgetDataWrapper dashboardGadgetDataWrapper2 = new DashboardGadgetDataWrapper();
- dashboardGadgetDataWrapper2.setContext("Feature-non-compliant-device-counts-by-ownerships");
- dashboardGadgetDataWrapper2.setGroupingAttribute(OWNERSHIP);
- dashboardGadgetDataWrapper2.setData(featureNonCompliantDeviceCountsByOwnerships);
-
- List responsePayload = new ArrayList<>();
- responsePayload.add(dashboardGadgetDataWrapper1);
- responsePayload.add(dashboardGadgetDataWrapper2);
-
- return Response.status(HttpStatus.SC_OK).entity(responsePayload).build();
- }
-
- @GET
- @Path("filtered-device-count-over-total")
- public Response getFilteredDeviceCountOverTotal(@QueryParam(CONNECTIVITY_STATUS) String connectivityStatus,
- @QueryParam(POTENTIAL_VULNERABILITY) String potentialVulnerability,
- @QueryParam(PLATFORM) String platform,
- @QueryParam(OWNERSHIP) String ownership) {
-
- // getting gadget data service
- GadgetDataService gadgetDataService = DeviceMgtAPIUtils.getGadgetDataService();
-
- // constructing filter set
- ExtendedFilterSet filterSet = new ExtendedFilterSet();
- filterSet.setConnectivityStatus(connectivityStatus);
- filterSet.setPotentialVulnerability(potentialVulnerability);
- filterSet.setPlatform(platform);
- filterSet.setOwnership(ownership);
-
- // creating filteredDeviceCount Data Wrapper
- DeviceCountByGroup filteredDeviceCount;
- try {
- String userName = getAuthenticatedUser();
- filteredDeviceCount = gadgetDataService.getDeviceCount(filterSet, userName);
- } catch (InvalidPotentialVulnerabilityValueException e) {
- log.error("Bad request and error occurred @ Gadget Data Service layer due to " +
- "invalid (query) parameter value. This was while trying to execute relevant data service " +
- "function @ Dashboard API layer to retrieve a filtered device count over the total.", e);
- return Response.status(HttpStatus.SC_BAD_REQUEST).
- entity(INVALID_QUERY_PARAM_VALUE_POTENTIAL_VULNERABILITY).build();
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve a filtered device count over the total.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- // creating TotalDeviceCount Data Wrapper
- DeviceCountByGroup totalDeviceCount;
- try {
- String userName = getAuthenticatedUser();
- totalDeviceCount = gadgetDataService.getTotalDeviceCount(userName);
- } catch (DataAccessLayerException e) {
- log.error("An internal error occurred while trying to execute relevant data service function " +
- "@ Dashboard API layer to retrieve the total device count over filtered.", e);
- return Response.status(HttpStatus.SC_INTERNAL_SERVER_ERROR).
- entity(ERROR_IN_RETRIEVING_REQUESTED_DATA).build();
- }
-
- List