revert-70aa11f8
Arcane94 7 years ago
commit 2fb5ec431a

@ -22,13 +22,13 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.annotations</artifactId> <artifactId>org.wso2.carbon.apimgt.annotations</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Management Annotations</name> <name>WSO2 Carbon - API Management Annotations</name>
<description>WSO2 Carbon - API Management Custom Annotation Module</description> <description>WSO2 Carbon - API Management Custom Annotation Module</description>

@ -21,12 +21,12 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<artifactId>org.wso2.carbon.apimgt.application.extension.api</artifactId> <artifactId>org.wso2.carbon.apimgt.application.extension.api</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<name>WSO2 Carbon - API Application Management API</name> <name>WSO2 Carbon - API Application Management API</name>

@ -22,12 +22,12 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<artifactId>org.wso2.carbon.apimgt.application.extension</artifactId> <artifactId>org.wso2.carbon.apimgt.application.extension</artifactId>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Application Management</name> <name>WSO2 Carbon - API Application Management</name>

@ -21,13 +21,13 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.handlers</artifactId> <artifactId>org.wso2.carbon.apimgt.handlers</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Security Handler Component</name> <name>WSO2 Carbon - API Security Handler Component</name>
<description>WSO2 Carbon - API Management Security Handler Module</description> <description>WSO2 Carbon - API Management Security Handler Module</description>

@ -13,13 +13,13 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.integration.client</artifactId> <artifactId>org.wso2.carbon.apimgt.integration.client</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Management Integration Client</name> <name>WSO2 Carbon - API Management Integration Client</name>
<description>WSO2 Carbon - API Management Integration Client</description> <description>WSO2 Carbon - API Management Integration Client</description>

@ -13,13 +13,13 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.integration.generated.client</artifactId> <artifactId>org.wso2.carbon.apimgt.integration.generated.client</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Management Integration Generated Client</name> <name>WSO2 Carbon - API Management Integration Generated Client</name>
<description>WSO2 Carbon - API Management Integration Client</description> <description>WSO2 Carbon - API Management Integration Client</description>

@ -22,13 +22,13 @@
<parent> <parent>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.webapp.publisher</artifactId> <artifactId>org.wso2.carbon.apimgt.webapp.publisher</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - API Management Webapp Publisher</name> <name>WSO2 Carbon - API Management Webapp Publisher</name>
<description>WSO2 Carbon - API Management Webapp Publisher</description> <description>WSO2 Carbon - API Management Webapp Publisher</description>

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>apimgt-extensions</artifactId> <artifactId>apimgt-extensions</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - API Management Extensions Component</name> <name>WSO2 Carbon - API Management Extensions Component</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -24,7 +24,7 @@
<parent> <parent>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -21,13 +21,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.certificate.mgt.core</artifactId> <artifactId>org.wso2.carbon.certificate.mgt.core</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Certificate Management Core</name> <name>WSO2 Carbon - Certificate Management Core</name>
<description>WSO2 Carbon - Certificate Management Core</description> <description>WSO2 Carbon - Certificate Management Core</description>

@ -24,7 +24,7 @@
<parent> <parent>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt</artifactId> <artifactId>certificate-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Certificate Management Component</name> <name>WSO2 Carbon - Certificate Management Component</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt-extensions</artifactId> <artifactId>device-mgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -67,8 +67,8 @@ import javax.ws.rs.core.Response;
} }
) )
@Path("/activities") @Path("/activities")
@Api(value = "Activity Info Provider", description = "Activity related information manipulation. For example" + @Api(value = "Getting Activity Details", description = "Get the details of the operations/activities executed by the" +
" operation details and responses from devices.") " server on the registered devices during a defined time period.")
@Scopes( @Scopes(
scopes = { scopes = {
@Scope( @Scope(
@ -88,9 +88,9 @@ public interface ActivityInfoProviderService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Details of an Activity", value = "Getting the Details of a Specific Activity",
notes = "Retrieve the details of a specific activity/operation, such as the meta information of " + notes = "Retrieve the details of a specific activity/operation, such as the meta information of an " +
"an operation, including the responses from the devices.", "operation, and the responses from the devices.",
tags = "Activity Info Provider", tags = "Activity Info Provider",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -142,7 +142,7 @@ public interface ActivityInfoProviderService {
Response getActivity( Response getActivity(
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Activity id of the operation/activity.", value = "Activity ID of the operation/activity.",
required = true, required = true,
defaultValue = "ACTIVITY_1") defaultValue = "ACTIVITY_1")
@PathParam("id") @PathParam("id")
@ -161,9 +161,10 @@ public interface ActivityInfoProviderService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Details of activities for given set of activity/operation Ids", value = "Getting Activity Details of Specified Activity/Operation IDs",
notes = "Retrieve the details of specific activity/operation Ids, such as the meta information of " + notes = "Retrieve the details of activities or operations, such as the meta information of an operation," +
"an operation, including the responses from the devices.", " and the responses from the devices."+
"Define the activity or operation IDs as comma separated values.",
tags = "Activity Info Provider", tags = "Activity Info Provider",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -213,7 +214,7 @@ public interface ActivityInfoProviderService {
Response getActivities( Response getActivities(
@ApiParam( @ApiParam(
name = "ids", name = "ids",
value = "Comma separated activity/operation ids", value = "Comma separated activity/operation IDs",
required = true, required = true,
defaultValue = "ACTIVITY_0") defaultValue = "ACTIVITY_0")
@QueryParam("ids") ActivityIdList activityIdList); @QueryParam("ids") ActivityIdList activityIdList);
@ -224,9 +225,8 @@ public interface ActivityInfoProviderService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Details of an Activity for a specific device", value = "Getting a Specific Activity Details of a Device",
notes = "Retrieve the details of a specific activity/operation, such as the meta information of " + notes = "Retrieve the details of a specific activity/operation, that was sent to a specific device.",
"an operation, including the responses from a given device",
tags = "Activity Info Provider", tags = "Activity Info Provider",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -286,7 +286,7 @@ public interface ActivityInfoProviderService {
String id, String id,
@ApiParam( @ApiParam(
name = "devicetype", name = "devicetype",
value = "The device type name, such as ios, android, windows or fire-alarm.", value = "The device type name, such as ios, android, windows, or fire-alarm.",
required = true) required = true)
@PathParam("devicetype") @PathParam("devicetype")
@Size(max = 45) @Size(max = 45)

@ -60,8 +60,8 @@ import javax.ws.rs.core.Response;
} }
) )
@Path("/configuration") @Path("/configuration")
@Api(value = "Configuration Management", description = "The general platform configuration management capabilities are exposed " + @Api(value = "Configuration Management", description = "The general platform configuration management capabilities " +
"through this API.") "are exposed through this API.")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@Scopes(scopes = { @Scopes(scopes = {
@ -86,9 +86,9 @@ public interface ConfigurationManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting General Platform Configurations", value = "Getting General Platform Configurations",
notes = "WSO2 EMM monitors policies to verify that the devices comply with the policies enforced on them. " + notes = "WSO2 EMM monitors policies to verify that the devices comply with the policies enforced on them." +
"General platform configurations include the settings on how often the device need to be monitored. " + "General platform configurations include the settings on how often the device need to be " +
"Using this REST API you can get the general platform level configurations.", "monitored." + "Using this REST API you can get the general platform level configurations.",
tags = "Configuration Management", tags = "Configuration Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -119,7 +119,8 @@ public interface ConfigurationManagementService {
), ),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the " +
"requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported."), message = "Not Acceptable.\n The requested media type is not supported."),
@ -146,8 +147,8 @@ public interface ConfigurationManagementService {
httpMethod = "PUT", httpMethod = "PUT",
value = "Updating General Platform Configurations", value = "Updating General Platform Configurations",
notes = "WSO2 EMM monitors policies to verify that the devices comply with the policies enforced on them." + notes = "WSO2 EMM monitors policies to verify that the devices comply with the policies enforced on them." +
"General platform configurations include the settings on how often the the device need to be monitored." + "General platform configurations include the settings on how often the the device need to be " +
"Using this REST API you can update the general platform level configurations.", "monitored. Using this REST API you can update the general platform level configurations.",
tags = "Configuration Management", tags = "Configuration Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {

@ -112,8 +112,8 @@ public interface DeviceAgentService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Create a device instance", value = "Creating a Device Instance",
notes = "Create a device Instance", notes = "Create a device instance using this API. Since this is not a physical device you are not able to try out device operations.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -157,7 +157,7 @@ public interface DeviceAgentService {
"Server error occurred while retrieving the device details.", "Server error occurred while retrieving the device details.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response enrollDevice(@ApiParam(name = "device", value = "Device object with data.", required = true) Response enrollDevice(@ApiParam(name = "device", value = "Define the payload to create a device instance. You can double click on the Example Value and define your values in it to create the instance.", required = true)
@Valid Device device); @Valid Device device);
@DELETE @DELETE
@ -186,7 +186,7 @@ public interface DeviceAgentService {
"Server error occurred while dis-enrolling the device.") "Server error occurred while dis-enrolling the device.")
}) })
Response disEnrollDevice( Response disEnrollDevice(
@ApiParam(name = "type", value = "The unique device identifier.") @PathParam("type") String type, @ApiParam(name = "type", value = "Define the device type, such as android, ios, or windows.") @PathParam("type") String type,
@ApiParam(name = "id", value = "The unique device identifier.") @PathParam("id") String id); @ApiParam(name = "id", value = "The unique device identifier.") @PathParam("id") String id);
@PUT @PUT
@ -194,8 +194,8 @@ public interface DeviceAgentService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "modify device", value = "Updating the Device Details",
notes = "modify device", notes = "You are able to update the details of a device using the API.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -239,15 +239,15 @@ public interface DeviceAgentService {
"Server error occurred while retrieving the device details.", "Server error occurred while retrieving the device details.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response updateDevice(@ApiParam(name = "type", value = "The device type, such as ios, android or windows....etc", required = true) Response updateDevice(@ApiParam(name = "type", value = "The device type, such as ios, android, or windows.", required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId, @PathParam("id") String deviceId,
@ApiParam(name = "device", value = "Device object with data.", required = true) @ApiParam(name = "device", value = "Update the device details in the device object.", required = true)
@Valid Device updateDevice); @Valid Device updateDevice);
@POST @POST
@Path("/events/publish/{type}/{deviceId}") @Path("events/publish{type}/{deviceId}")
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
@ -303,11 +303,11 @@ public interface DeviceAgentService {
Map<String, Object> payloadData, Map<String, Object> payloadData,
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "name of the device type") value = "The name of the device type, such as android, ios, or windows.")
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "deviceId of the device") value = "The device ID.")
@PathParam("deviceId") String deviceId); @PathParam("deviceId") String deviceId);
@POST @POST
@ -317,7 +317,8 @@ public interface DeviceAgentService {
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Publishing Events data only", value = "Publishing Events data only",
notes = "Publish events received by the device client to the WSO2 Data Analytics Server (DAS) using this API.", notes = "Publish events received by the device client to the WSO2 Data Analytics Server (DAS) using this" +
" API.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -343,7 +344,8 @@ public interface DeviceAgentService {
}), }),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n The source can be retrieved from the URL specified in the location header.", message = "See Other. \n The source can be retrieved from the URL specified in the " +
"location header.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -353,7 +355,8 @@ public interface DeviceAgentService {
message = "Bad Request. \n Invalid request or validation error."), message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The format of the requested entity was not supported."), message = "Unsupported media type. \n The format of the requested entity was not " +
"supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -380,8 +383,8 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Get pending operation of the given device", value = "Getting All the Pending Operations of a Device",
notes = "Returns the Operations.", notes = "You can get all the list of pending operations of a device.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -405,7 +408,8 @@ public interface DeviceAgentService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last " +
"time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
@ -426,9 +430,9 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getPendingOperations(@ApiParam(name = "type", value = "The device type, such as ios, android or windows.", required = true) Response getPendingOperations(@ApiParam(name = "type", value = "The device type, such as ios, android, or windows.", required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId); @PathParam("id") String deviceId);
@GET @GET
@ -437,8 +441,9 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Get pending operation of the given device", value = "Getting the Next Pending Operations of a Device",
notes = "Returns the Operation.", notes = "There can be many operations that are pending on the device end. Get the next pending operation " +
"of a specific device using this API.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -483,9 +488,10 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getNextPendingOperation(@ApiParam(name = "type", value = "The device type, such as ios, android or windows.", required = true) Response getNextPendingOperation(@ApiParam(name = "type", value = "The device type, such as ios, android, or " +
"windows.", required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId); @PathParam("id") String deviceId);
@PUT @PUT
@ -494,7 +500,7 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Update Operation", value = "Updating an Operation",
notes = "Update the Operations.", notes = "Update the Operations.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@ -539,11 +545,12 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response updateOperation(@ApiParam(name = "type", value = "The device type, such as ios, android or windows.", required = true) Response updateOperation(@ApiParam(name = "type", value = "The device type, such as ios, android, or windows.",
required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId, @PathParam("id") String deviceId,
@ApiParam(name = "operation", value = "Operation object with data.", required = true) @ApiParam(name = "operation", value = "Update the operation object with data.", required = true)
@Valid Operation operation); @Valid Operation operation);
@PUT @PUT
@ -552,7 +559,7 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Update Properties", value = "Updating Device Properties",
notes = "Update device properties.", notes = "Update device properties.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@ -597,11 +604,12 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response updateDeviceProperties(@ApiParam(name = "type", value = "The device type, such as ios, android or windows.", required = true) Response updateDeviceProperties(@ApiParam(name = "type", value = "The device type, such as ios, android, or " +
"windows.", required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId, @PathParam("id") String deviceId,
@ApiParam(name = "properties", value = "device properties list.", required = true) @ApiParam(name = "properties", value = "The device properties list.", required = true)
@Valid List<Device.Property> properties); @Valid List<Device.Property> properties);
@GET @GET
@ -610,8 +618,9 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Get pending operation of the given device", value = "Getting Specific Operations of a Device",
notes = "Returns the Operations.", notes = "Device operations can be in the IN_PROGRESS, PENDING, COMPLETED, ERROR, or REPEATED status. " +
"You can use this API to get a list of all the operations that are in a specific status for a given device.",
tags = "Device Agent Management", tags = "Device Agent Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -656,9 +665,10 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.", "Server error occurred while retrieving information requested device.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getOperationsByDeviceAndStatus(@ApiParam(name = "type", value = "The device type, such as ios, android or windows.", required = true) Response getOperationsByDeviceAndStatus(@ApiParam(name = "type", value = "The device type, such as ios, android," +
" or windows.", required = true)
@PathParam("type") String type, @PathParam("type") String type,
@ApiParam(name = "id", value = "The device id.", required = true) @ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId, @PathParam("id") String deviceId,
@ApiParam(name = "status", value = "status of the operation.", required = true) @ApiParam(name = "status", value = "status of the operation.", required = true)
@QueryParam("status")Operation.Status status); @QueryParam("status")Operation.Status status);

@ -77,8 +77,8 @@ public interface DeviceEventManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Add Event Type Defnition", value = "Adding the Event Type Definition",
notes = "Add the event definition for the device.", notes = "Add the event definition for a device.",
tags = "Device Event Management", tags = "Device Event Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -120,9 +120,11 @@ public interface DeviceEventManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
} }
) )
Response deployDeviceTypeEventDefinition(@ApiParam(name = "type", value = "name of the device type", required = false) Response deployDeviceTypeEventDefinition(@ApiParam(name = "type", value = "The device type, such as android, ios," +
" and windows.", required = false)
@PathParam("type")String deviceType, @PathParam("type")String deviceType,
@ApiParam(name = "deviceTypeEvent", value = "DeviceTypeEvent object with data.", required = true) @ApiParam(name = "deviceTypeEvent", value = "Add the data to complete " +
"the DeviceTypeEvent object.", required = true)
@Valid DeviceTypeEvent deviceTypeEvent); @Valid DeviceTypeEvent deviceTypeEvent);
@DELETE @DELETE
@ -130,8 +132,8 @@ public interface DeviceEventManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Delete Event Type Defnition", value = "Delete Event Type Definition",
notes = "Delete the event definition for the device.", notes = "Delete the event definition of a device.",
tags = "Device Event Management", tags = "Device Event Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -173,7 +175,8 @@ public interface DeviceEventManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
} }
) )
Response deleteDeviceTypeEventDefinitions(@ApiParam(name = "type", value = "name of the device type", required = false) Response deleteDeviceTypeEventDefinitions(@ApiParam(name = "type", value = "The device type, such as android, " +
"ios, and windows.", required = false)
@PathParam("type")String deviceType); @PathParam("type")String deviceType);
@GET @GET
@ -244,7 +247,7 @@ public interface DeviceEventManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Last Known Device Events", value = "Getting Last Known Device Events",
notes = "Get the Last Known events for the device.", notes = "Get the last known events for the device.",
tags = "Device Event Management", tags = "Device Event Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -287,9 +290,9 @@ public interface DeviceEventManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
} }
) )
Response getLastKnownData(@ApiParam(name = "deviceId", value = "id of the device ", required = false) Response getLastKnownData(@ApiParam(name = "deviceId", value = "The device ID.", required = false)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam(name = "type", value = "name of the device type", required = false) @ApiParam(name = "type", value = "The device type, such as android, ios, or windows.", required = false)
@PathParam("type") String deviceType); @PathParam("type") String deviceType);
@GET @GET
@ -297,7 +300,7 @@ public interface DeviceEventManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Event Type Defnition", value = "Getting Event Type Definition",
notes = "Get the event definition for the device.", notes = "Get the event definition for the device.",
tags = "Device Event Management", tags = "Device Event Management",
extensions = { extensions = {
@ -341,7 +344,8 @@ public interface DeviceEventManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
} }
) )
Response getDeviceTypeEventDefinition(@ApiParam(name = "type", value = "name of the device type", required = false) Response getDeviceTypeEventDefinition(@ApiParam(name = "type", value = "The type of the device, such as android," +
" ios, or windows.", required = false)
@PathParam("type")String deviceType) ; @PathParam("type")String deviceType) ;
} }

@ -208,13 +208,13 @@ public interface DeviceManagementService {
Response getDevices( Response getDevices(
@ApiParam( @ApiParam(
name = "name", name = "name",
value = "The device name, such as shamu, bullhead or angler Nexus device names. ", value = "The device name. For example, Nexus devices can have names, suhc as shamu, bullhead or angler.",
required = false) required = false)
@Size(max = 45) @Size(max = 45)
String name, String name,
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = false) required = false)
@QueryParam("type") @QueryParam("type")
@Size(max = 45) @Size(max = 45)
@ -227,7 +227,7 @@ public interface DeviceManagementService {
String user, String user,
@ApiParam( @ApiParam(
name = "userPattern", name = "userPattern",
value = "The pattern of username of the owner of the device.", value = "Define a few letters of the username in the order they appear. For example, you want to get the devices that belong to the admin, you can give \\\"ad\\\" or \\\"min\\\" here and you will get the devices that are enrolled under a user who has the given combination as part of the username .",
required = false) required = false)
@QueryParam("userPattern") @QueryParam("userPattern")
String userPattern, String userPattern,
@ -303,8 +303,8 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Details of Registered Devices owned by authenticated user", value = "Getting Details of Registered Devices Owned by an Authenticated User",
notes = "Provides details of devices enrolled by authenticated user.", notes = "Provides details of devices enrolled by authenticated users.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -460,8 +460,8 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Get device enrollment status", value = "Getting the Device Enrollment Status",
notes = "Get device enrollment status", notes = "Get the device enrollment status and the device details of the device.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -564,7 +564,7 @@ public interface DeviceManagementService {
Response getDeviceLocation( Response getDeviceLocation(
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type name, such as ios, android, windows or fire-alarm.", value = "The device type name, such as ios, android, windows, or fire-alarm.",
required = true) required = true)
@PathParam("type") @PathParam("type")
@Size(max = 45) @Size(max = 45)
@ -592,7 +592,7 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting the information of a Device", value = "Getting the Information of a Device",
notes = "Get the information of a device by specifying the device type and device identifier.", notes = "Get the information of a device by specifying the device type and device identifier.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@ -641,7 +641,7 @@ public interface DeviceManagementService {
Response getDeviceInformation( Response getDeviceInformation(
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type name, such as ios, android, windows or fire-alarm.", value = "The device type name, such as ios, android, windows, or fire-alarm.",
required = true) required = true)
@PathParam("type") @PathParam("type")
@Size(max = 45) @Size(max = 45)
@ -670,8 +670,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Update the device specified by device id", value = "Update the Displayed Name of the Device",
notes = "Returns the status of the updated device operation.", notes = "Use this API to rename a device so that it is easy for you to identify devices.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -719,12 +719,12 @@ public interface DeviceManagementService {
Response renameDevice( Response renameDevice(
@ApiParam( @ApiParam(
name = "device", name = "device",
value = "The payload containing new name for device with updated name.", value = "The payload containing the new name of the device.",
required = true) required = true)
Device device, Device device,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("device-type") @PathParam("device-type")
@Size(max = 45) @Size(max = 45)
@ -745,8 +745,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Remove the device specified by device id", value = "Remove the Device Specified by the Device ID",
notes = "Returns the status of the deleted device operation.", notes = "Returns the status of the deleted device operation and the details of the deleted device.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -794,7 +794,7 @@ public interface DeviceManagementService {
Response deleteDevice( Response deleteDevice(
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("device-type") @PathParam("device-type")
@Size(max = 45) @Size(max = 45)
@ -1041,7 +1041,7 @@ public interface DeviceManagementService {
Response getInstalledApplications( Response getInstalledApplications(
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type name, such as ios, android, windows or fire-alarm.", value = "The device type name, such as ios, android, windows, or fire-alarm.",
required = true) required = true)
@PathParam("type") @PathParam("type")
@Size(max = 45) @Size(max = 45)
@ -1190,7 +1190,7 @@ public interface DeviceManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Get the details of the policy that is enforced on a device.", value = "Getting the Details of a Policy Enforced on a Device",
notes = "A policy is enforced on all the devices that register with WSO2 IoTS." + notes = "A policy is enforced on all the devices that register with WSO2 IoTS." +
"WSO2 IoTS filters the policies based on the device platform (device type)," + "WSO2 IoTS filters the policies based on the device platform (device type)," +
"the device ownership type, the user role or name and finally, the policy that matches these filters will be enforced on the device.", "the device ownership type, the user role or name and finally, the policy that matches these filters will be enforced on the device.",
@ -1252,14 +1252,14 @@ public interface DeviceManagementService {
Response getEffectivePolicyOfDevice( Response getEffectivePolicyOfDevice(
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type name, such as ios, android, windows or fire-alarm.", value = "The device type name, such as ios, android, windows, or fire-alarm.",
required = true) required = true)
@PathParam("type") @PathParam("type")
@Size(max = 45) @Size(max = 45)
String type, String type,
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "The device identifier.", value = "The device ID.",
required = true) required = true)
@PathParam("id") @PathParam("id")
@Size(max = 45) @Size(max = 45)
@ -1327,8 +1327,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Change device status by device id.", value = "Changing the Status of a Device",
notes = "Returns the status of the changed device operation.", notes = "Change the status of a device from one state to another.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -1376,21 +1376,21 @@ public interface DeviceManagementService {
Response changeDeviceStatus( Response changeDeviceStatus(
@ApiParam( @ApiParam(
name = "type", name = "type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("type") @PathParam("type")
@Size(max = 45) @Size(max = 45)
String type, String type,
@ApiParam( @ApiParam(
name = "id", name = "id",
value = "Device id", value = "Device ID.",
required = true) required = true)
@PathParam("id") @PathParam("id")
@Size(max = 45) @Size(max = 45)
String id, String id,
@ApiParam( @ApiParam(
name = "newStatus", name = "newStatus",
value = "New status of the device.", value = "The available device statuses are CREATED, ACTIVE, INACTIVE, UNREACHABLE, UNCLAIMED, SUSPENDED, BLOCKED, REMOVED, and DISENROLLMENT_REQUESTED.",
required = true) required = true)
@QueryParam("newStatus") @QueryParam("newStatus")
EnrolmentInfo.Status newStatus); EnrolmentInfo.Status newStatus);
@ -1401,8 +1401,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Add operation to set of devices for a given device type", value = "Sending an Operation to Specific Device Types",
notes = "Returns the Activity Related to the operation.", notes = "You can send an operation to a group of devices that belong to a specific device type using this API. For example, you can send a ring operation to all the enrolled Android devices.",
tags = "Device Management", tags = "Device Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {

@ -92,8 +92,8 @@ public interface GeoLocationBasedService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "GET",
value = "Retrieve Analytics for the device type", value = "Getting the Location Details of a Device",
notes = "", notes = "Get the location details of a device during a define time period.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -131,24 +131,24 @@ public interface GeoLocationBasedService {
Response getGeoDeviceStats( Response getGeoDeviceStats(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)
String deviceType, String deviceType,
@ApiParam( @ApiParam(
name = "from", name = "from",
value = "Get stats from what time", value = "Define the time to start getting the geo location history of the device in the Epoch or UNIX format.",
required = true) required = true)
@QueryParam("from") long from, @QueryParam("from") long from,
@ApiParam( @ApiParam(
name = "to", name = "to",
value = "Get stats up to what time", value = "Define the time to finish getting the geo location history of the device in the Epoch or UNIX format.",
required = true) required = true)
@QueryParam("to") long to); @QueryParam("to") long to);
@ -161,8 +161,8 @@ public interface GeoLocationBasedService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "GET",
value = "Retrieve locations of devices", value = "Getting the Devices in a Defined Geofence",
notes = "", notes = "Get the details of the devices that are within the defined geofence coordinates. The geofence you are defining is enclosed with four coordinates in the shape of a square or rectangle. This is done by defining two points of the geofence. The other two points are automatically created using the given points. You can define the zoom level or scale of the map too.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -200,28 +200,33 @@ public interface GeoLocationBasedService {
Response getGeoDeviceLocations( Response getGeoDeviceLocations(
@ApiParam( @ApiParam(
name = "minLat", name = "minLat",
value = "minimum latitude", value = "Define the minimum latitude of the geofence.",
required = true) required = true,
defaultValue ="79.85213577747345")
@QueryParam("minLat") double minLat, @QueryParam("minLat") double minLat,
@ApiParam( @ApiParam(
name = "maxLat", name = "maxLat",
value = "maxmimum latitude", value = "Define the maximum latitude of the geofence.",
required = true) required = true,
defaultValue ="79.85266149044037")
@QueryParam("maxLat") double maxLat, @QueryParam("maxLat") double maxLat,
@ApiParam( @ApiParam(
name = "minLong", name = "minLong",
value = "minimum longitude", value = "Define the minimum longitude of the geofence.",
required = true) required = true,
defaultValue ="6.909673257977737")
@QueryParam("minLong") double minLong, @QueryParam("minLong") double minLong,
@ApiParam( @ApiParam(
name = "maxLong", name = "maxLong",
value = "maximum longitudeude", value = "Define the maximum longitude of the geofence",
required = true) required = true,
defaultValue ="6.909673257977737")
@QueryParam("maxLong") double maxLong, @QueryParam("maxLong") double maxLong,
@ApiParam( @ApiParam(
name = "zoom", name = "zoom",
value = "zoom level", value = "Define the level to zoom or scale the map. You can define any value between 1 to 14.",
required = true) required = true,
defaultValue ="2")
@QueryParam("zoom") int zoom); @QueryParam("zoom") int zoom);
@ -233,9 +238,9 @@ public interface GeoLocationBasedService {
@ApiOperation( @ApiOperation(
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "POST",
value = "Create Geo alerts for the device", value = "Retrieving a Specific Geo Alert Type from a Device",
notes = "", notes = "Retrieve a specific geo alert from a device, such as getting a speed alert that was sent to a device.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -274,19 +279,19 @@ public interface GeoLocationBasedService {
@Valid Alert alert, @Valid Alert alert,
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)
String deviceType, String deviceType,
@ApiParam( @ApiParam(
name = "alertType", name = "alertType",
value = "The alert type, such as Within, Speed, Stationary", value = "The alert type, such as Within, Speed,Exit, or Stationary.",
required = true) required = true)
@PathParam("alertType") String alertType); @PathParam("alertType") String alertType);
@ -298,9 +303,9 @@ public interface GeoLocationBasedService {
@ApiOperation( @ApiOperation(
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "PUT",
value = "Update Geo alerts for the device", value = "Updating the Geo Alerts of a Device",
notes = "", notes = "Update the a geo alert that was sent to a device.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -339,19 +344,19 @@ public interface GeoLocationBasedService {
@Valid Alert alert, @Valid Alert alert,
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)
String deviceType, String deviceType,
@ApiParam( @ApiParam(
name = "alertType", name = "alertType",
value = "The alert type, such as Within, Speed, Stationary", value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true) required = true)
@PathParam("alertType") String alertType); @PathParam("alertType") String alertType);
@ -364,8 +369,8 @@ public interface GeoLocationBasedService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "GET",
value = "Retrieve Geo alerts for the device", value = "Getting a Geo Alert from a Device",
notes = "", notes = "Retrieve a specific geo alert from a device, such as getting a speed alert that was sent to a device.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -403,19 +408,19 @@ public interface GeoLocationBasedService {
Response getGeoAlerts( Response getGeoAlerts(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android. or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)
String deviceType, String deviceType,
@ApiParam( @ApiParam(
name = "alertType", name = "alertType",
value = "The alert type, such as Within, Speed, Stationary", value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true) required = true)
@PathParam("alertType") String alertType); @PathParam("alertType") String alertType);
@ -428,8 +433,8 @@ public interface GeoLocationBasedService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "GET",
value = "Retrieve Geo alerts history for the device", value = "Getting the Geo Service Alert History of a Device",
notes = "", notes = "Get the geo alert history of a device during the defined time period.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -467,24 +472,24 @@ public interface GeoLocationBasedService {
Response getGeoAlertsHistory( Response getGeoAlertsHistory(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)
String deviceType, String deviceType,
@ApiParam( @ApiParam(
name = "from", name = "from",
value = "Get stats from what time", value = "Define the time to start getting the geo location history of the device in the Epoch or UNIX format.",
required = true) required = true)
@QueryParam("from") long from, @QueryParam("from") long from,
@ApiParam( @ApiParam(
name = "to", name = "to",
value = "Get stats up to what time", value = "Define the time to finish getting the geo location history of the device in the Epoch or UNIX format.",
required = true) required = true)
@QueryParam("to") long to); @QueryParam("to") long to);
@ -494,8 +499,8 @@ public interface GeoLocationBasedService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Deletes Geo alerts for the device", value = "Deleting a Geo Alert from a Device",
notes = "", notes = "Delete a specific geo alert from a device, such as deleting a speed alert that was sent to the device.",
response = Response.class, response = Response.class,
tags = "Geo Service Management", tags = "Geo Service Management",
extensions = { extensions = {
@ -529,22 +534,23 @@ public interface GeoLocationBasedService {
Response removeGeoAlerts( Response removeGeoAlerts(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "deviceType", name = "deviceType",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") String deviceType, @PathParam("deviceType") String deviceType,
@ApiParam( @ApiParam(
name = "alertType", name = "alertType",
value = "The alert type, such as Within, Speed, Stationary", value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true) required = true)
@PathParam("alertType") String alertType, @PathParam("alertType") String alertType,
@ApiParam( @ApiParam(
name = "queryName", name = "queryName",
value = "The query name.", value = "When you define a geofence you define a fence name for it. That name needs to be defined" +
" here.",
required = true) required = true)
@QueryParam("queryName") String queryName); @QueryParam("queryName") String queryName);
} }

@ -72,8 +72,8 @@ import java.util.List;
), ),
tags = { tags = {
@Tag(name = "device_management", description = "Device group related REST-API. " + @Tag(name = "device_management", description = "Device group related REST-API. " +
"This can be used to manipulated device group related " + "This can be used to manipulated device group related " +
"details.") "details.")
} }
) )
@Scopes( @Scopes(
@ -166,7 +166,7 @@ import java.util.List;
) )
@Path("/groups") @Path("/groups")
@Api(value = "Device Group Management", description = "This API carries all device group management related " + @Api(value = "Device Group Management", description = "This API carries all device group management related " +
"operations such as get all the available groups, etc.") "operations such as get all the available groups, etc.")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
public interface GroupManagementService { public interface GroupManagementService {
@ -175,13 +175,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "Get the list of groups belongs to current user.", value = "Getting the List of Groups",
notes = "Returns all permitted groups enrolled with the system.", notes = "Returns all groups enrolled with the system.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:groups") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:groups")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -194,16 +194,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported."), message = "Not Acceptable.\n The requested media type is not supported."),
@ -213,8 +213,8 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getGroups(@ApiParam( Response getGroups(@ApiParam(
name = "name", name = "name",
value = "Name of the group.") value = "Name of the group.")
@QueryParam("name") @QueryParam("name")
String name, String name,
@ApiParam( @ApiParam(
@ -230,7 +230,8 @@ public interface GroupManagementService {
int offset, int offset,
@ApiParam( @ApiParam(
name = "limit", name = "limit",
value = "Provide how many device details you require from the starting pagination index/offset.", value = "Provide how many device details you require from the starting pagination " +
"index/offset.",
defaultValue = "5") defaultValue = "5")
@QueryParam("limit") @QueryParam("limit")
int limit); int limit);
@ -240,13 +241,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "Get the count of groups belongs to current user.", value = "Getting the Number of Device Groups",
notes = "Returns count of all permitted groups enrolled with the system.", notes = "Get the number of device groups in the server that the current signed in user can access.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:count") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:count")
}) })
} }
) )
@ -260,16 +261,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported."), message = "Not Acceptable.\n The requested media type is not supported."),
@ -284,13 +285,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
consumes = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_POST, httpMethod = HTTPConstants.HEADER_POST,
value = "Add new device group to the system.", value = "Adding a New Device Group",
notes = "Add device group with current user as the owner.", notes = "Add device group with the current user as the owner.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:add") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:add")
}) })
} }
) )
@ApiResponses( @ApiResponses(
@ -308,16 +309,17 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time" +
"Used by caches, or in conditional requests.") ".\n" + "Used by caches, or in conditional requests.")
} }
), ),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n Source can be retrieved from the URL specified at the Location header.", message = "See Other. \n Source can be retrieved from the URL specified at the Location " +
"header.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -332,17 +334,18 @@ public interface GroupManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The entity of the request was in a not supported format."), message = "Unsupported media type. \n The entity of the request was in a not supported " +
"format."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
"Server error occurred while adding a new device group.", "Server error occurred while adding a new device group.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response createGroup(@ApiParam( Response createGroup(@ApiParam(
name = "group", name = "group",
value = "Group object with data.", value = "Define the group object with data.",
required = true) required = true)
@Valid DeviceGroup group); @Valid DeviceGroup group);
@Path("/id/{groupId}") @Path("/id/{groupId}")
@ -350,13 +353,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "View group specified.", value = "Getting Details of a Specific Device Group",
notes = "Returns details of group enrolled with the system.", notes = "Get the details of a specific device group.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:groups-view") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:groups-view")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -369,16 +372,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Group found.", message = "Group found.",
@ -392,9 +395,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getGroup(@ApiParam( Response getGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group to view.", value = "The ID of the group.",
required = true) required = true)
@PathParam("groupId") int groupId); @PathParam("groupId") int groupId);
@Path("/id/{groupId}") @Path("/id/{groupId}")
@ -402,14 +405,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_PUT, httpMethod = HTTPConstants.HEADER_PUT,
value = "Update a group.", value = "Updating a Device Group",
notes = "If you wish to make changes to an existing group, that can be done by updating the group using " + notes = "If you wish to make changes to an existing group, that can be done by updating the group using this API",
"this resource.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:update") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:update")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -421,16 +423,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Group not found.", message = "Group not found.",
@ -444,13 +446,13 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response updateGroup(@ApiParam( Response updateGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group to be updated.", value = "ID of the group to be updated.",
required = true) required = true)
@PathParam("groupId") int groupId, @PathParam("groupId") int groupId,
@ApiParam( @ApiParam(
name = "group", name = "group",
value = "Group object with data.", value = "Update the content of the group object.",
required = true) required = true)
@Valid DeviceGroup deviceGroup); @Valid DeviceGroup deviceGroup);
@ -459,14 +461,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_DELETE, httpMethod = HTTPConstants.HEADER_DELETE,
value = "Delete a group.", value = "Deleting a Group",
notes = "If you wish to remove an existing group, that can be done by updating the group using " + notes = "If you wish to remove an existing group, that can be done by updating the group using this API.",
"this resource.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:remove") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:remove")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -478,16 +479,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Group not found.", message = "Group not found.",
@ -501,9 +502,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response deleteGroup(@ApiParam( Response deleteGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group to be deleted.", value = "ID of the group to be deleted.",
required = true) required = true)
@PathParam("groupId") int groupId); @PathParam("groupId") int groupId);
@Path("/id/{groupId}/share") @Path("/id/{groupId}/share")
@ -511,14 +512,14 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_POST, httpMethod = HTTPConstants.HEADER_POST,
value = "Manage group sharing with a user.", value = "Sharing a Group",
notes = "If you wish to share /un share an existing group with a user under defined sharing roles, " + notes = "A device group can be shared with different user-roles. The users that belong to that role can " +
"that can be done using this resource.", "then view the groups and the devices in it. Use this API to share a group among user roles.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:share") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:share")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -530,16 +531,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Group not found.", message = "Group not found.",
@ -553,9 +554,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response manageGroupSharing(@ApiParam( Response manageGroupSharing(@ApiParam(
name = "groupName", name = "groupName",
value = "Name of the group to be shared or unshared.", value = "Name of the group to be shared or unshared.",
required = true) required = true)
@PathParam("groupId") int groupId, @PathParam("groupId") int groupId,
@ApiParam( @ApiParam(
name = "userRoles", name = "userRoles",
@ -568,13 +569,14 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "View list of roles of a device group.", value = "Getting the List of Roles the Group is Shared With",
notes = "Returns details of roles which particular group has been shared with.", notes = "A device group can be shared with different user-roles. The users that belong to that role can" +
"then view the groups and the devices in it. Using this API you get the list of roles the device group is shared with.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:roles") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:roles")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -610,9 +612,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getRolesOfGroup(@ApiParam( Response getRolesOfGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group.", value = "ID of the group.",
required = true) required = true)
@PathParam("groupId") int groupId); @PathParam("groupId") int groupId);
@Path("/id/{groupId}/devices") @Path("/id/{groupId}/devices")
@ -620,13 +622,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "View list of devices in the device group.", value = "Getting the List of Devices in a Group",
notes = "Returns list of devices in the device group.", notes = "Returns the list of devices in a device group.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -639,16 +641,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Group not found.", message = "Group not found.",
@ -662,9 +664,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getDevicesOfGroup(@ApiParam( Response getDevicesOfGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group.", value = "ID of the group.",
required = true) required = true)
@PathParam("groupId") @PathParam("groupId")
int groupId, int groupId,
@ApiParam( @ApiParam(
@ -675,7 +677,8 @@ public interface GroupManagementService {
int offset, int offset,
@ApiParam( @ApiParam(
name = "limit", name = "limit",
value = "Provide how many device details you require from the starting pagination index/offset.", value = "Provide how many group details you require from the starting " +
"pagination index/offset.",
defaultValue = "5") defaultValue = "5")
@QueryParam("limit") @QueryParam("limit")
int limit); int limit);
@ -685,13 +688,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "View list of device count in the device group.", value = "Getting the Number of Devices in a Group",
notes = "Returns device count in the device group.", notes = "Get the number of devices in a group using this API.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-count") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-count")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -704,16 +707,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "No groups found.", message = "No groups found.",
@ -727,23 +730,23 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getDeviceCountOfGroup(@ApiParam( Response getDeviceCountOfGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group.", value = "ID of the group.",
required = true) required = true)
@PathParam("groupId") int groupId); @PathParam("groupId") int groupId);
@Path("/id/{groupId}/devices/add") @Path("/id/{groupId}/devices/add")
@POST @POST
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_POST, httpMethod = HTTPConstants.HEADER_POST,
value = "Add devices to group.", value = "Adding Devices to a Group",
notes = "Add existing devices to the device group.", notes = "Add the enrolled devices to a group.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-add") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-add")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -755,16 +758,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "No groups found.", message = "No groups found.",
@ -778,9 +781,9 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response addDevicesToGroup(@ApiParam( Response addDevicesToGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group.", value = "ID of the group.",
required = true) required = true)
@PathParam("groupId") int groupId, @PathParam("groupId") int groupId,
@ApiParam( @ApiParam(
name = "deviceIdentifiers", name = "deviceIdentifiers",
@ -793,13 +796,13 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_DELETE, httpMethod = HTTPConstants.HEADER_DELETE,
value = "Remove devices from group.", value = "Removing Devices from a Group",
notes = "Remove existing devices from the device group.", notes = "Remove a device from a group using this API.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-remove") @ExtensionProperty(name = Constants.SCOPE, value = "perm:groups:devices-remove")
}) })
} }
) )
@ApiResponses(value = { @ApiResponses(value = {
@ -811,16 +814,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "No groups found.", message = "No groups found.",
@ -834,13 +837,14 @@ public interface GroupManagementService {
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response removeDevicesFromGroup(@ApiParam( Response removeDevicesFromGroup(@ApiParam(
name = "groupId", name = "groupId",
value = "ID of the group.", value = "ID of the group.",
required = true) required = true)
@PathParam("groupId") int groupId, @PathParam("groupId") int groupId,
@ApiParam( @ApiParam(
name = "deviceIdentifiers", name = "deviceIdentifiers",
value = "Device identifiers of the devices which needed to be removed.", value = "The device identifiers of the devices that needed to be removed."+
" You can define many device IDs as comma separated values.",
required = true) required = true)
@Valid List<DeviceIdentifier> deviceIdentifiers); @Valid List<DeviceIdentifier> deviceIdentifiers);
@ -849,8 +853,8 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_POST, httpMethod = HTTPConstants.HEADER_POST,
value = "Assign devices to groups", value = "Adding a Device to Many Groups",
notes = "Add existing device to device groups.", notes = "Add an already enrolled device to many groups, using this API.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -867,16 +871,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "No groups found.", message = "No groups found.",
@ -892,7 +896,9 @@ public interface GroupManagementService {
Response updateDeviceAssigningToGroups( Response updateDeviceAssigningToGroups(
@ApiParam( @ApiParam(
name = "deviceToGroupsAssignment", name = "deviceToGroupsAssignment",
value = "Device to groups assignment", value = "In the payload, define the group IDs that you need to add the device to as comma " +
"separated values, and the device identifier and type of the device, such as android, " +
"ios, and windows, that needs to be added to the groups.",
required = true) required = true)
@Valid DeviceToGroupsAssignment deviceToGroupsAssignment); @Valid DeviceToGroupsAssignment deviceToGroupsAssignment);
@ -901,8 +907,9 @@ public interface GroupManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = HTTPConstants.HEADER_GET, httpMethod = HTTPConstants.HEADER_GET,
value = "List of groups that have the device", value = "Getting Device Groups that Include the Specific Device",
notes = "List of groups that have the device.", notes = " device can be added to one or many groups. This API gives you the list of groups the device " +
"has been added to.",
tags = "Device Group Management", tags = "Device Group Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -919,16 +926,16 @@ public interface GroupManagementService {
@ResponseHeader( @ResponseHeader(
name = "ETag", name = "ETag",
description = "Entity Tag of the response resource.\n" + description = "Entity Tag of the response resource.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last time.\n" +
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client has already the latest version of " + message = "Not Modified. \n Empty body because the client has already the latest version of " +
"the requested resource."), "the requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported."), message = "Not Acceptable.\n The requested media type is not supported."),
@ -940,13 +947,13 @@ public interface GroupManagementService {
Response getGroups( Response getGroups(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "Id of the device.", value = "The device ID.",
required = true) required = true)
@QueryParam("deviceId") @QueryParam("deviceId")
String deviceId, String deviceId,
@ApiParam( @ApiParam(
name = "deviceType", name = "deviceType",
value = "Type of the device.", value = "The type of the device, such as android, ios, or windows.",
required = true) required = true)
@QueryParam("deviceType") @QueryParam("deviceType")
String deviceType); String deviceType);

@ -221,9 +221,9 @@ public interface NotificationManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT", httpMethod = "PUT",
value = "Clear all notifications", value = "Clearing All Notifications",
notes = "When a user needs to mark all the notifications as checked/read this " + notes = "When a user needs to mark all the notifications as checked/read this " +
"function can be used to clear all notifications", "function can be used to clear all notifications.",
tags = "Device Notification Management", tags = "Device Notification Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {

@ -136,7 +136,8 @@ import java.util.List;
) )
} }
) )
@Api(value = "Device Policy Management", description = "This API includes the functionality around device policy management") @Api(value = "Device Policy Management", description = "This API includes the functionality around device policy " +
"management")
@Path("/policies") @Path("/policies")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON)
@ -148,8 +149,10 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Adding a Policy", value = "Adding a Policy",
notes = "Add a policy using this REST API command. When adding a policy you will have the option of saving the policy or saving and publishing the policy." + notes = "Add a policy using this REST API command. When adding a policy you will have the option of " +
"Using this REST API you are able to save a created Policy and this policy will be in the inactive state.", "saving the policy or saving and publishing the policy." +
"Using this REST API you are able to save a created Policy and this policy will be in the " +
"inactive state.",
tags = "Device Policy Management", tags = "Device Policy Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -181,7 +184,8 @@ public interface PolicyManagementService {
), ),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n The source can be retrieved from the URL specified in the location header", message = "See Other. \n The source can be retrieved from the URL specified in the " +
"location header",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -192,11 +196,13 @@ public interface PolicyManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 401, code = 401,
message = "Not Found. \n The user that is currently logged in is not authorized to add policies.", message = "Not Found. \n The user that is currently logged in is not authorized to add " +
"policies.",
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The format of the requested entity was not supported."), message = "Unsupported media type. \n The format of the requested entity was not " +
"supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -248,7 +254,8 @@ public interface PolicyManagementService {
), ),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version " +
"of the requested resource."),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
message = "Bad Request. \n Invalid request or validation error.", message = "Bad Request. \n Invalid request or validation error.",
@ -322,7 +329,8 @@ public interface PolicyManagementService {
), ),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource.\n"), message = "Not Modified. \n Empty body because the client already has the latest version " +
"of the requested resource.\n"),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n A specified policy was not found.", message = "Not Found. \n A specified policy was not found.",
@ -400,7 +408,8 @@ public interface PolicyManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The format of the requested entity was not supported."), message = "Unsupported media type. \n The format of the requested entity was not " +
"supported."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n " + message = "Internal Server Error. \n " +
@ -451,7 +460,8 @@ public interface PolicyManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The format of the requested entity was not supported.\n " message = "Unsupported media type. \n The format of the requested entity was not " +
"supported.\n "
+ "supported format."), + "supported format."),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
@ -474,7 +484,8 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Activating Policies", value = "Activating Policies",
notes = "Publish a policy using this API to bring a policy that is in the inactive state to the active state.", notes = "Publish a policy using this API to bring a policy that is in the inactive state to the active " +
"state.",
tags = "Device Policy Management", tags = "Device Policy Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -515,7 +526,8 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Deactivating Policies", value = "Deactivating Policies",
notes = "Unpublish a policy using this API to bring a policy that is in the active state to the inactive state.", notes = "Unpublish a policy using this API to bring a policy that is in the active state to the inactive " +
"state.",
tags = "Device Policy Management", tags = "Device Policy Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -655,7 +667,8 @@ public interface PolicyManagementService {
), ),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource.\n"), message = "Not Modified. \n Empty body because the client already has the latest version " +
"of the requested resource.\n"),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n A specified policy was not found.", message = "Not Found. \n A specified policy was not found.",

@ -78,8 +78,8 @@ public interface RemoteSessionService {
consumes = "application/json", consumes = "application/json",
produces = "application/json", produces = "application/json",
httpMethod = "GET", httpMethod = "GET",
value = "Retrieve Connection Information for the device type", value = "Connecting to a Device",
notes = "", notes = "You able to connect to a device to start a remote session using this API.",
response = Response.class, response = Response.class,
tags = "Remote Session Service Management", tags = "Remote Session Service Management",
extensions = { extensions = {
@ -117,12 +117,12 @@ public interface RemoteSessionService {
Response getRemoteSessionDeviceConnect( Response getRemoteSessionDeviceConnect(
@ApiParam( @ApiParam(
name = "deviceId", name = "deviceId",
value = "The registered device Id.", value = "The device ID.",
required = true) required = true)
@PathParam("deviceId") String deviceId, @PathParam("deviceId") String deviceId,
@ApiParam( @ApiParam(
name = "device-type", name = "device-type",
value = "The device type, such as ios, android or windows.", value = "The device type, such as ios, android, or windows.",
required = true) required = true)
@PathParam("deviceType") @PathParam("deviceType")
@Size(max = 45) @Size(max = 45)

@ -185,7 +185,7 @@ public interface RoleManagementService {
@ApiOperation( @ApiOperation(
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting the List of Roles filtered by the given prefix", value = "Getting the List of Roles Filtered by the Given Prefix",
notes = "WSO2 IoTS supports role-based access control (RBAC) and role management. Using this API you can the list of roles that are in WSO2 IoTS.\n" + notes = "WSO2 IoTS supports role-based access control (RBAC) and role management. Using this API you can the list of roles that are in WSO2 IoTS.\n" +
"Note: Internal roles, roles created for service-providers, and application related roles will not be given in the output.", "Note: Internal roles, roles created for service-providers, and application related roles will not be given in the output.",
tags = "Role Management", tags = "Role Management",
@ -482,7 +482,9 @@ public interface RoleManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Adding a combined Role", value = "Adding a combined Role",
notes = "WSO2 IoTS supports role-based access control (RBAC) and role management. Add a new combined role to WSO2 IoTS using this REST API.", notes = "You are able to combine two roles that already exist and create one role. For example, you " +
"might want a role that has device owner and application management role permissions, you can" +
" now select these two roles and create another new role that has all their permissions.",
tags = "Role Management", tags = "Role Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -511,7 +513,8 @@ public interface RoleManagementService {
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 303, code = 303,
message = "See Other. \n The source can be retrieved from the URL specified in the location header.", message = "See Other. \n The source can be retrieved from the URL specified in the location " +
"header.",
responseHeaders = { responseHeaders = {
@ResponseHeader( @ResponseHeader(
name = "Content-Location", name = "Content-Location",
@ -597,7 +600,8 @@ public interface RoleManagementService {
name = "role", name = "role",
value = "The properties required to update a role.\n" + value = "The properties required to update a role.\n" +
"NOTE: Don't change the role and the permissions of the admin user. " + "NOTE: Don't change the role and the permissions of the admin user. " +
"If you want to try out this API by updating all the properties, create a new role and update the properties accordingly.", "If you want to try out this API by updating all the properties, create a new role " +
"and update the properties accordingly.",
required = true) RoleInfo role, required = true) RoleInfo role,
@ApiParam( @ApiParam(
name = "user-store", name = "user-store",
@ -610,7 +614,8 @@ public interface RoleManagementService {
@ApiOperation( @ApiOperation(
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Deleting a Role", value = "Deleting a Role",
notes = "Roles become obsolete over time due to various reasons. In a situation where your Organization identifies that a specific role is no longer required, you " + notes = "Roles become obsolete over time due to various reasons. In a situation where your " +
"Organization identifies that a specific role is no longer required, you " +
"can delete a role using this REST API.", "can delete a role using this REST API.",
tags = "Role Management", tags = "Role Management",
extensions = { extensions = {
@ -659,8 +664,10 @@ public interface RoleManagementService {
notes = "Defining users to a role at the point of creating a new role is optional. " + notes = "Defining users to a role at the point of creating a new role is optional. " +
"You can update the users that belong to a given role after you have created " + "You can update the users that belong to a given role after you have created " +
"a role using this REST API.\n" + "a role using this REST API.\n" +
"Example: Your Organization hires 30 new engineers. Updating the role details for each user can " + "Example: Your Organization hires 30 new engineers. Updating the role details for each user " +
"be cumbersome. Therefore, you can define all the new employees that belong to the engineering " + "can " +
"be cumbersome. Therefore, you can define all the new employees that belong to the " +
"engineering " +
"role using this API.", "role using this API.",
tags = "Role Management", tags = "Role Management",
extensions = { extensions = {
@ -684,7 +691,8 @@ public interface RoleManagementService {
"Used by caches, or in conditional requests."), "Used by caches, or in conditional requests."),
@ResponseHeader( @ResponseHeader(
name = "Last-Modified", name = "Last-Modified",
description = "Date and time the resource has been modified the last time.\n" + description = "Date and time the resource has been modified the last " +
"time.\n" +
"Used by caches, or in conditional requests.")}), "Used by caches, or in conditional requests.")}),
@ApiResponse( @ApiResponse(
code = 400, code = 400,
@ -696,7 +704,8 @@ public interface RoleManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 415, code = 415,
message = "Unsupported media type. \n The format of the requested entity was not supported.\n" + message = "Unsupported media type. \n The format of the requested entity was not " +
"supported.\n" +
"supported format.", "supported format.",
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(

@ -155,7 +155,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "POST", httpMethod = "POST",
value = "Adding a User", value = "Adding a User",
notes = "WSO2 IoTS supports user management. Add a new user to the WSO2 IoTS user management system via this REST API", notes = "WSO2 IoTS supports user management. Add a new user to the WSO2 IoTS user management system via " +
"this REST API",
tags = "User Management", tags = "User Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -243,7 +244,8 @@ public interface UserManagementService {
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the " +
"requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n The specified resource does not exist.", message = "Not Found. \n The specified resource does not exist.",
@ -351,7 +353,8 @@ public interface UserManagementService {
@ApiOperation( @ApiOperation(
httpMethod = "DELETE", httpMethod = "DELETE",
value = "Deleting a User", value = "Deleting a User",
notes = "When an employee leaves the organization, you can remove the user details from WSO2 IoTS using this REST API.", notes = "When an employee leaves the organization, you can remove the user details from WSO2 IoTS using " +
"this REST API.",
tags = "User Management", tags = "User Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -378,7 +381,8 @@ public interface UserManagementService {
@ApiParam( @ApiParam(
name = "username", name = "username",
value = "Username of the user to be deleted.\n" + value = "Username of the user to be deleted.\n" +
"INFO: If you want to try out this API, make sure to create a new user and then remove that user. Do not remove the admin user.", "INFO: If you want to try out this API, make sure to create a new user and then remove " +
"that user. Do not remove the admin user.",
required = true, required = true,
defaultValue = "[Create a new user named Jim, and then try out this API.]") defaultValue = "[Create a new user named Jim, and then try out this API.]")
@PathParam("username") String username, @PathParam("username") String username,
@ -394,7 +398,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting the Role Details of a User", value = "Getting the Role Details of a User",
notes = "A user can be assigned to one or more role in IoTS. Using this REST API you can get the role/roles a user is assigned to.", notes = "A user can be assigned to one or more role in IoTS. Using this REST API you can get the " +
"role/roles a user is assigned to.",
tags = "User Management", tags = "User Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {
@ -422,7 +427,8 @@ public interface UserManagementService {
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the " +
"requested resource."),
@ApiResponse( @ApiResponse(
code = 404, code = 404,
message = "Not Found. \n The specified resource does not exist.\n", message = "Not Found. \n The specified resource does not exist.\n",
@ -455,7 +461,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Getting Details of Users", value = "Getting Details of Users",
notes = "You are able to manage users in WSO2 IoTS by adding, updating and removing users. If you wish to get the list of users registered with WSO2 IoTS, you can do so " notes = "You are able to manage users in WSO2 IoTS by adding, updating and removing users. If you wish to" +
" get the list of users registered with WSO2 IoTS, you can do so "
+ "using this REST API", + "using this REST API",
tags = "User Management", tags = "User Management",
extensions = { extensions = {
@ -492,7 +499,8 @@ public interface UserManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching the list of WSO2 IoTS users.", message = "Internal Server Error. \n Server error occurred while fetching the list of WSO2 IoTS " +
"users.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getUsers( Response getUsers(
@ -551,7 +559,8 @@ public interface UserManagementService {
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching the total number of users in WSO2 IoTS.", message = "Internal Server Error. \n Server error occurred while fetching the total number of " +
"users in WSO2 IoTS.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getUserCount(); Response getUserCount();
@ -602,7 +611,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON,
httpMethod = "GET", httpMethod = "GET",
value = "Searching for a User Name", value = "Searching for a User Name",
notes = "If you are unsure of the user name of a user and need to retrieve the details of a specific user, you can " notes = "If you are unsure of the user name of a user and need to retrieve the details of a specific " +
"user, you can "
+ "search for that user by giving a character or a few characters in the username. " + "search for that user by giving a character or a few characters in the username. "
+ "You will be given a list of users having the user name in the exact order of the " + "You will be given a list of users having the user name in the exact order of the "
+ "characters you provided.", + "characters you provided.",
@ -634,14 +644,16 @@ public interface UserManagementService {
}), }),
@ApiResponse( @ApiResponse(
code = 304, code = 304,
message = "Not Modified. \n Empty body because the client already has the latest version of the requested resource."), message = "Not Modified. \n Empty body because the client already has the latest version of the " +
"requested resource."),
@ApiResponse( @ApiResponse(
code = 406, code = 406,
message = "Not Acceptable.\n The requested media type is not supported", message = "Not Acceptable.\n The requested media type is not supported",
response = ErrorResponse.class), response = ErrorResponse.class),
@ApiResponse( @ApiResponse(
code = 500, code = 500,
message = "Internal Server Error. \n Server error occurred while fetching the list of users that matched the given filter.", message = "Internal Server Error. \n Server error occurred while fetching the list of users that " +
"matched the given filter.",
response = ErrorResponse.class) response = ErrorResponse.class)
}) })
Response getUserNames( Response getUserNames(
@ -727,7 +739,9 @@ public interface UserManagementService {
httpMethod = "POST", httpMethod = "POST",
value = "Sending Enrollment Invitations to Users", value = "Sending Enrollment Invitations to Users",
notes = "Send the users a mail inviting them to enroll their devices using the REST API given below.\n" + notes = "Send the users a mail inviting them to enroll their devices using the REST API given below.\n" +
"Before running the REST API command to send the enrollment invitations to users make sure to configure WSO2 IoTS as explained in step 4, under the WSO2 IoTS general server configurations documentation.", "Before running the REST API command to send the enrollment invitations to users make sure to " +
"configure WSO2 IoTS as explained in step 4, under the WSO2 IoTS general server configurations " +
"documentation.",
tags = "User Management", tags = "User Management",
extensions = { extensions = {
@Extension(properties = { @Extension(properties = {

@ -521,7 +521,7 @@ public class DeviceAgentServiceImpl implements DeviceAgentService {
@Override @Override
@PUT @PUT
@Path("/operations/{type}/{id}") @Path("/properties/{type}/{id}")
public Response updateDeviceProperties(@PathParam("type") String type, @PathParam("id") String deviceId, public Response updateDeviceProperties(@PathParam("type") String type, @PathParam("id") String deviceId,
@Valid List<Device.Property> properties) { @Valid List<Device.Property> properties) {
try { try {
@ -542,13 +542,16 @@ public class DeviceAgentServiceImpl implements DeviceAgentService {
return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); return Response.status(Response.Status.BAD_REQUEST).entity(msg).build();
} }
DeviceMgtAPIUtils.getDeviceManagementService().updateProperties(deviceIdentifier, properties); if (DeviceMgtAPIUtils.getDeviceManagementService().updateProperties(deviceIdentifier, properties)){
return Response.status(Response.Status.ACCEPTED).entity("Device properties updated.").build();
} else {
return Response.status(Response.Status.NOT_ACCEPTABLE).entity("Device properties not updated.").build();
}
} catch (DeviceManagementException e) { } catch (DeviceManagementException e) {
String errorMessage = "Issue in retrieving device management service instance"; String errorMessage = "Issue in retrieving device management service instance";
log.error(errorMessage, e); log.error(errorMessage, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build(); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build();
} }
return null;
} }
@GET @GET

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig; import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig;
import org.wso2.carbon.device.mgt.common.InvalidConfigurationException;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig; import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager; import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
@ -71,6 +72,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
String deviceType = provider.getType(); String deviceType = provider.getType();
ProvisioningConfig provisioningConfig = provider.getProvisioningConfig(); ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
String tenantDomain = provisioningConfig.getProviderTenantDomain(); String tenantDomain = provisioningConfig.getProviderTenantDomain();
if (log.isDebugEnabled()) {
log.debug(deviceType + " device type is added for tenant : " + tenantDomain);
}
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().getDeviceManagementConfig(); DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance().getDeviceManagementConfig();
boolean isSharedWithAllTenants = provisioningConfig.isSharedWithAllTenants(); boolean isSharedWithAllTenants = provisioningConfig.isSharedWithAllTenants();
int tenantId = DeviceManagerUtil.getTenantId(tenantDomain); int tenantId = DeviceManagerUtil.getTenantId(tenantDomain);
@ -125,6 +129,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
public void removeDeviceManagementProvider(DeviceManagementService provider) public void removeDeviceManagementProvider(DeviceManagementService provider)
throws DeviceManagementException { throws DeviceManagementException {
String deviceTypeName = provider.getType(); String deviceTypeName = provider.getType();
if (log.isDebugEnabled()) {
log.debug(deviceTypeName + " device type is removed.");
}
DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance() DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance()
.getDeviceManagementConfig(); .getDeviceManagementConfig();
DeviceTypeServiceIdentifier deviceTypeIdentifier; DeviceTypeServiceIdentifier deviceTypeIdentifier;
@ -152,10 +159,22 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
private void unregisterPushNotificationStrategy(DeviceTypeServiceIdentifier deviceTypeIdentifier) { private void unregisterPushNotificationStrategy(DeviceTypeServiceIdentifier deviceTypeIdentifier) {
OperationManager operationManager = operationManagerRepository.getOperationManager( OperationManager operationManager = operationManagerRepository.getOperationManager(
deviceTypeIdentifier); deviceTypeIdentifier);
if (log.isDebugEnabled()) {
log.debug(deviceTypeIdentifier.getDeviceType() + " device type management service is " +
"retrieved for tenant id: " + deviceTypeIdentifier.getTenantId());
for (Map.Entry<DeviceTypeServiceIdentifier, DeviceManagementServiceHolder> entry : providers.entrySet()) {
log.debug("Device Type : " + entry.getKey().getDeviceType() + " Tenant Id : " +
entry.getKey().getTenantId());
}
}
if (operationManager != null) { if (operationManager != null) {
NotificationStrategy notificationStrategy = operationManager.getNotificationStrategy(); try {
if (notificationStrategy != null) { NotificationStrategy notificationStrategy = operationManager.getNotificationStrategy();
notificationStrategy.undeploy(); if (notificationStrategy != null) {
notificationStrategy.undeploy();
}
} catch (InvalidConfigurationException ignore) {
//error occurred while undeploying strategy, ignore error
} }
operationManagerRepository.removeOperationManager(deviceTypeIdentifier); operationManagerRepository.removeOperationManager(deviceTypeIdentifier);
} }
@ -165,6 +184,13 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
//Priority need to be given to the tenant before public. //Priority need to be given to the tenant before public.
DeviceTypeServiceIdentifier deviceTypeIdentifier = new DeviceTypeServiceIdentifier(type, tenantId); DeviceTypeServiceIdentifier deviceTypeIdentifier = new DeviceTypeServiceIdentifier(type, tenantId);
DeviceManagementServiceHolder provider = providers.get(deviceTypeIdentifier); DeviceManagementServiceHolder provider = providers.get(deviceTypeIdentifier);
if (log.isDebugEnabled()) {
log.debug(type + " device type management service is retrieved for tenant id: " + tenantId);
for (Map.Entry<DeviceTypeServiceIdentifier, DeviceManagementServiceHolder> entry : providers.entrySet()) {
log.debug("Device Type : " + entry.getKey().getDeviceType() + " Tenant Id : " +
entry.getKey().getTenantId());
}
}
if (provider == null) { if (provider == null) {
deviceTypeIdentifier = new DeviceTypeServiceIdentifier(type); deviceTypeIdentifier = new DeviceTypeServiceIdentifier(type);
provider = providers.get(deviceTypeIdentifier); provider = providers.get(deviceTypeIdentifier);
@ -310,6 +336,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
DeviceTaskManagerService deviceTaskManagerService = DeviceManagementDataHolder.getInstance(). DeviceTaskManagerService deviceTaskManagerService = DeviceManagementDataHolder.getInstance().
getDeviceTaskManagerService(); getDeviceTaskManagerService();
DeviceStatusTaskPluginConfig deviceStatusTaskPluginConfig = deviceManagementService.getDeviceStatusTaskPluginConfig(); DeviceStatusTaskPluginConfig deviceStatusTaskPluginConfig = deviceManagementService.getDeviceStatusTaskPluginConfig();
if (log.isDebugEnabled()) {
log.debug(deviceType + " device type status monitoring task is registered.");
}
if (deviceStatusTaskPluginConfig != null && deviceStatusTaskPluginConfig.isRequireStatusMonitoring()) { if (deviceStatusTaskPluginConfig != null && deviceStatusTaskPluginConfig.isRequireStatusMonitoring()) {
if (deviceTaskManagerService == null) { if (deviceTaskManagerService == null) {
DeviceManagementDataHolder.getInstance().addDeviceStatusTaskPluginConfig(deviceType, DeviceManagementDataHolder.getInstance().addDeviceStatusTaskPluginConfig(deviceType,
@ -330,6 +359,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
DeviceStatusTaskManagerService deviceStatusTaskManagerService = DeviceManagementDataHolder.getInstance(). DeviceStatusTaskManagerService deviceStatusTaskManagerService = DeviceManagementDataHolder.getInstance().
getDeviceStatusTaskManagerService(); getDeviceStatusTaskManagerService();
DeviceStatusTaskPluginConfig deviceStatusTaskPluginConfig = deviceManagementService.getDeviceStatusTaskPluginConfig(); DeviceStatusTaskPluginConfig deviceStatusTaskPluginConfig = deviceManagementService.getDeviceStatusTaskPluginConfig();
if (log.isDebugEnabled()) {
log.debug(deviceType + " device type status monitoring task is unregistered.");
}
if (deviceStatusTaskPluginConfig != null && deviceStatusTaskPluginConfig.isRequireStatusMonitoring()) { if (deviceStatusTaskPluginConfig != null && deviceStatusTaskPluginConfig.isRequireStatusMonitoring()) {
try { try {
DeviceManagementDataHolder.getInstance().removeDeviceStatusTaskPluginConfig(deviceType); DeviceManagementDataHolder.getInstance().removeDeviceStatusTaskPluginConfig(deviceType);
@ -346,6 +378,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
public OperationManager getOperationManager(String deviceType, int tenantId) { public OperationManager getOperationManager(String deviceType, int tenantId) {
//Priority need to be given to the tenant before public. //Priority need to be given to the tenant before public.
DeviceTypeServiceIdentifier deviceTypeIdentifier = new DeviceTypeServiceIdentifier(deviceType, tenantId); DeviceTypeServiceIdentifier deviceTypeIdentifier = new DeviceTypeServiceIdentifier(deviceType, tenantId);
if (log.isDebugEnabled()) {
log.debug(deviceType + " device type operation manager is retrieved for tenant: ." + tenantId);
}
if (getDeviceManagementService(deviceType, tenantId) == null) { if (getDeviceManagementService(deviceType, tenantId) == null) {
return null; return null;
} }

@ -111,6 +111,12 @@ public class ArchivalServiceImpl implements ArchivalService {
} }
archivalDAO.moveProfileOperations(); archivalDAO.moveProfileOperations();
//Purge the config operation table, DM_CONFIG_OPERATION
if (log.isDebugEnabled()) {
log.debug("## Purging config operations");
}
archivalDAO.moveConfigOperations();
//Purge the enrolment mappings table, DM_ENROLMENT_OP_MAPPING //Purge the enrolment mappings table, DM_ENROLMENT_OP_MAPPING
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("## Purging enrolment mappings"); log.debug("## Purging enrolment mappings");

@ -41,6 +41,8 @@ public interface ArchivalDAO {
void moveProfileOperations() throws ArchivalDAOException; void moveProfileOperations() throws ArchivalDAOException;
void moveConfigOperations() throws ArchivalDAOException;
void moveEnrolmentMappings() throws ArchivalDAOException; void moveEnrolmentMappings() throws ArchivalDAOException;
void moveOperations() throws ArchivalDAOException; void moveOperations() throws ArchivalDAOException;

@ -56,8 +56,8 @@ public class ArchivalDAOImpl implements ArchivalDAO {
try { try {
Connection conn = ArchivalSourceDAOFactory.getConnection(); Connection conn = ArchivalSourceDAOFactory.getConnection();
String sql = "SELECT DISTINCT OPERATION_ID FROM DM_ENROLMENT_OP_MAPPING " + String sql = "SELECT DISTINCT OPERATION_ID FROM DM_ENROLMENT_OP_MAPPING " +
"WHERE CREATED_TIMESTAMP BETWEEN DATE_SUB(NOW(), INTERVAL " + "WHERE CREATED_TIMESTAMP BETWEEN DATE(TIMESTAMPADD(DAY, " +
this.retentionPeriod + " DAY) AND NOW()"; this.retentionPeriod + ", NOW())) AND NOW()";
stmt = this.createMemoryEfficientStatement(conn); stmt = this.createMemoryEfficientStatement(conn);
rs = stmt.executeQuery(sql); rs = stmt.executeQuery(sql);
while (rs.next()) { while (rs.next()) {
@ -83,7 +83,8 @@ public class ArchivalDAOImpl implements ArchivalDAO {
Connection conn = ArchivalSourceDAOFactory.getConnection(); Connection conn = ArchivalSourceDAOFactory.getConnection();
String sql = "SELECT DISTINCT OPERATION_ID " + String sql = "SELECT DISTINCT OPERATION_ID " +
" FROM DM_ENROLMENT_OP_MAPPING WHERE STATUS IN('PENDING', 'IN_PROGRESS') " + " FROM DM_ENROLMENT_OP_MAPPING WHERE STATUS IN('PENDING', 'IN_PROGRESS') " +
" AND CREATED_TIMESTAMP BETWEEN DATE_SUB(NOW(), INTERVAL " + this.retentionPeriod +" DAY) AND NOW()"; " AND CREATED_TIMESTAMP BETWEEN DATE(TIMESTAMPADD(DAY, " + this.retentionPeriod +", NOW())) " +
"AND NOW()";
stmt = this.createMemoryEfficientStatement(conn); stmt = this.createMemoryEfficientStatement(conn);
rs = stmt.executeQuery(sql); rs = stmt.executeQuery(sql);
while (rs.next()) { while (rs.next()) {
@ -337,6 +338,56 @@ public class ArchivalDAOImpl implements ArchivalDAO {
} }
} }
@Override
public void moveConfigOperations() throws ArchivalDAOException {
Statement stmt = null;
PreparedStatement stmt2 = null;
Statement stmt3 = null;
ResultSet rs = null;
try {
Connection conn = ArchivalSourceDAOFactory.getConnection();
String sql = "SELECT * FROM DM_CONFIG_OPERATION WHERE OPERATION_ID IN " +
"(SELECT ID FROM DM_ARCHIVED_OPERATIONS)";
stmt = this.createMemoryEfficientStatement(conn);
rs = stmt.executeQuery(sql);
Connection conn2 = ArchivalDestinationDAOFactory.getConnection();
sql = "INSERT INTO DM_CONFIG_OPERATION_ARCH VALUES(?, ?, ?, ?)";
stmt2 = conn2.prepareStatement(sql);
int count = 0;
while (rs.next()) {
stmt2.setInt(1, rs.getInt("OPERATION_ID"));
stmt2.setBytes(2, rs.getBytes("OPERATION_CONFIG"));
stmt2.setInt(3, rs.getInt("ENABLED"));
stmt2.setTimestamp(4,this.currentTimestamp );
stmt2.addBatch();
if (++count % batchSize == 0) {
stmt2.executeBatch();
}
}
stmt2.executeBatch();
if (log.isDebugEnabled()) {
log.debug(count + " [CONFIG_OPERATION] Records copied to the archival table. Starting deletion");
}
sql = "DELETE FROM DM_CONFIG_OPERATION" +
" WHERE OPERATION_ID IN (SELECT ID FROM DM_ARCHIVED_OPERATIONS)";
stmt3 = conn.createStatement();
int affected = stmt3.executeUpdate(sql);
if (log.isDebugEnabled()) {
log.debug(affected + " Rows deleted");
}
} catch (SQLException e) {
throw new ArchivalDAOException("Error occurred while moving config operations", e);
} finally {
ArchivalDAOUtil.cleanupResources(stmt, rs);
ArchivalDAOUtil.cleanupResources(stmt2);
ArchivalDAOUtil.cleanupResources(stmt3);
}
}
@Override @Override
public void moveEnrolmentMappings() throws ArchivalDAOException { public void moveEnrolmentMappings() throws ArchivalDAOException {
Statement stmt = null; Statement stmt = null;

@ -29,6 +29,7 @@ public class ArchivalTaskConfiguration {
private int retentionPeriod; private int retentionPeriod;
private int batchSize; private int batchSize;
private PurgingTaskConfiguration purgingTaskConfiguration; private PurgingTaskConfiguration purgingTaskConfiguration;
private final int MULTIPLIER = -1;
@XmlElement(name = "Enabled", required = true) @XmlElement(name = "Enabled", required = true)
public boolean isEnabled() { public boolean isEnabled() {
@ -59,7 +60,8 @@ public class ArchivalTaskConfiguration {
@XmlElement(name = "RetentionPeriod", required = true) @XmlElement(name = "RetentionPeriod", required = true)
public int getRetentionPeriod() { public int getRetentionPeriod() {
return retentionPeriod; // multiply by -1 to get the diff
return retentionPeriod * MULTIPLIER;
} }
public void setRetentionPeriod(int retentionPeriod) { public void setRetentionPeriod(int retentionPeriod) {

@ -21,6 +21,7 @@ package org.wso2.carbon.device.mgt.core.operation.mgt;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.device.mgt.common.Device; import org.wso2.carbon.device.mgt.common.Device;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
@ -67,7 +68,9 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* This class implements all the functionality exposed as part of the OperationManager. Any transaction initiated * This class implements all the functionality exposed as part of the OperationManager. Any transaction initiated
@ -88,10 +91,10 @@ public class OperationManagerImpl implements OperationManager {
private OperationDAO operationDAO; private OperationDAO operationDAO;
private DeviceDAO deviceDAO; private DeviceDAO deviceDAO;
private EnrollmentDAO enrollmentDAO; private EnrollmentDAO enrollmentDAO;
private NotificationStrategy notificationStrategy;
private String deviceType; private String deviceType;
private DeviceManagementService deviceManagementService; private DeviceManagementService deviceManagementService;
private long lastUpdatedTimeStamp = 0; private Map<Integer, NotificationStrategy> notificationStrategies;
private Map<Integer, Long> lastUpdatedTimeStamps;
public OperationManagerImpl() { public OperationManagerImpl() {
commandOperationDAO = OperationManagementDAOFactory.getCommandOperationDAO(); commandOperationDAO = OperationManagementDAOFactory.getCommandOperationDAO();
@ -102,6 +105,8 @@ public class OperationManagerImpl implements OperationManager {
operationDAO = OperationManagementDAOFactory.getOperationDAO(); operationDAO = OperationManagementDAOFactory.getOperationDAO();
deviceDAO = DeviceManagementDAOFactory.getDeviceDAO(); deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
enrollmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO(); enrollmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO();
notificationStrategies = new HashMap<>();
lastUpdatedTimeStamps = new HashMap<>();
} }
public OperationManagerImpl(String deviceType, DeviceManagementService deviceManagementService) { public OperationManagerImpl(String deviceType, DeviceManagementService deviceManagementService) {
@ -111,23 +116,32 @@ public class OperationManagerImpl implements OperationManager {
} }
public NotificationStrategy getNotificationStrategy() { public NotificationStrategy getNotificationStrategy() {
// Notification strategy can be set by the platform configurations. Therefore it is needed to
// get tenant specific notification strategy dynamically in the runtime. However since this is
// a resource intensive retrieval, we are maintaining tenant aware local cache here to keep device
// type specific notification strategy.
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(false);
long lastUpdatedTimeStamp = 0;
if (lastUpdatedTimeStamps.containsKey(tenantId)){
lastUpdatedTimeStamp = lastUpdatedTimeStamps.get(tenantId);
}
if (Calendar.getInstance().getTimeInMillis() - lastUpdatedTimeStamp > CACHE_VALIDITY_PERIOD) { if (Calendar.getInstance().getTimeInMillis() - lastUpdatedTimeStamp > CACHE_VALIDITY_PERIOD) {
PushNotificationConfig pushNoteConfig = deviceManagementService.getPushNotificationConfig(); PushNotificationConfig pushNoteConfig = deviceManagementService.getPushNotificationConfig();
if (pushNoteConfig != null && !NOTIFIER_TYPE_LOCAL.equals(pushNoteConfig.getType())) { if (pushNoteConfig != null && !NOTIFIER_TYPE_LOCAL.equals(pushNoteConfig.getType())) {
PushNotificationProvider provider = DeviceManagementDataHolder.getInstance() PushNotificationProvider provider = DeviceManagementDataHolder.getInstance()
.getPushNotificationProviderRepository().getProvider(pushNoteConfig.getType()); .getPushNotificationProviderRepository().getProvider(pushNoteConfig.getType());
if (provider == null) { if (provider == null) {
log.error("No registered push notification provider found for the type: '" + log.error("No registered push notification provider found for the type '" +
pushNoteConfig.getType() + "'."); pushNoteConfig.getType() + "' under tenant ID '" + tenantId + "'.");
return null; return null;
} }
notificationStrategy = provider.getNotificationStrategy(pushNoteConfig); notificationStrategies.put(tenantId, provider.getNotificationStrategy(pushNoteConfig));
} else { } else if (notificationStrategies.containsKey(tenantId)){
notificationStrategy = null; notificationStrategies.remove(tenantId);
} }
lastUpdatedTimeStamp = Calendar.getInstance().getTimeInMillis(); lastUpdatedTimeStamps.put(tenantId, Calendar.getInstance().getTimeInMillis());
} }
return notificationStrategy; return notificationStrategies.get(tenantId);
} }
@Override @Override
@ -164,7 +178,7 @@ public class OperationManagerImpl implements OperationManager {
boolean isScheduledOperation = this.isTaskScheduledOperation(operation); boolean isScheduledOperation = this.isTaskScheduledOperation(operation);
boolean isNotRepeated = false; boolean isNotRepeated = false;
boolean isScheduled = false; boolean isScheduled = false;
notificationStrategy = getNotificationStrategy(); NotificationStrategy notificationStrategy = getNotificationStrategy();
// check whether device list is greater than batch size notification strategy has enable to send push // check whether device list is greater than batch size notification strategy has enable to send push
// notification using scheduler task // notification using scheduler task

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -32,11 +32,16 @@ import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration
import org.wso2.carbon.device.mgt.common.license.mgt.License; import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException; import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManagementException;
import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager; import org.wso2.carbon.device.mgt.common.license.mgt.LicenseManager;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.*; import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DataSource;
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeDeployerPayloadException; import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceDetails;
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeMgtPluginException; import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceTypeConfiguration;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Feature;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.Table;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.TableConfig;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceDAODefinition; import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceDAODefinition;
import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceTypePluginDAOManager; import org.wso2.carbon.device.mgt.extensions.device.type.template.dao.DeviceTypePluginDAOManager;
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeDeployerPayloadException;
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeMgtPluginException;
import org.wso2.carbon.device.mgt.extensions.device.type.template.feature.ConfigurationBasedFeatureManager; import org.wso2.carbon.device.mgt.extensions.device.type.template.feature.ConfigurationBasedFeatureManager;
import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceTypePluginConstants; import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceTypePluginConstants;
import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceTypeUtils; import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceTypeUtils;
@ -108,7 +113,7 @@ public class DeviceTypeManager implements DeviceManager {
} }
} }
} catch (LicenseManagementException e) { } catch (LicenseManagementException e) {
String msg = "Error occurred while adding default license for " + deviceType + " devices"; String msg = "Error occurred while adding default license for " + deviceType + " devices.";
throw new DeviceTypeDeployerPayloadException(msg, e); throw new DeviceTypeDeployerPayloadException(msg, e);
} }
claimable = false; claimable = false;
@ -346,6 +351,7 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Checking the enrollment of Android device : " + deviceId.getId()); log.debug("Checking the enrollment of Android device : " + deviceId.getId());
} }
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
Device device = Device device =
deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId()); deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId());
if (device != null) { if (device != null) {
@ -353,8 +359,16 @@ public class DeviceTypeManager implements DeviceManager {
} }
} catch (DeviceTypeMgtPluginException e) { } catch (DeviceTypeMgtPluginException e) {
String msg = "Error while checking the enrollment status of " + deviceType + " device : " + String msg = "Error while checking the enrollment status of " + deviceType + " device : " +
deviceId.getId(); deviceId.getId();
throw new DeviceManagementException(msg, e); throw new DeviceManagementException(msg, e);
} finally {
try {
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().closeConnection();
} catch (DeviceTypeMgtPluginException e) {
String msg = "Error occurred while closing the transaction to check device " +
deviceId.getId() + " is enrolled.";
log.warn(msg, e);
}
} }
return isEnrolled; return isEnrolled;
} }
@ -383,10 +397,18 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Getting the details of " + deviceType + " device : '" + deviceId.getId() + "'"); log.debug("Getting the details of " + deviceType + " device : '" + deviceId.getId() + "'");
} }
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
device = deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId()); device = deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId());
} catch (DeviceTypeMgtPluginException e) { } catch (DeviceTypeMgtPluginException e) {
throw new DeviceManagementException( throw new DeviceManagementException(
"Error occurred while fetching the " + deviceType + " device: '" + deviceId.getId() + "'", e); "Error occurred while fetching the " + deviceType + " device: '" + deviceId.getId() + "'", e);
} finally {
try {
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().closeConnection();
} catch (DeviceTypeMgtPluginException e) {
String msg = "Error occurred while closing the transaction to get device " + deviceId.getId();
log.warn(msg, e);
}
} }
return device; return device;
} }
@ -405,8 +427,16 @@ public class DeviceTypeManager implements DeviceManager {
Device updatedDevice = new Device(); Device updatedDevice = new Device();
updatedDevice.setDeviceIdentifier(deviceId.getId()); updatedDevice.setDeviceIdentifier(deviceId.getId());
updatedDevice.setProperties(propertyList); updatedDevice.setProperties(propertyList);
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
status = deviceTypePluginDAOManager.getDeviceDAO().updateDevice(updatedDevice); status = deviceTypePluginDAOManager.getDeviceDAO().updateDevice(updatedDevice);
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().commitTransaction();
} catch (DeviceTypeMgtPluginException e) { } catch (DeviceTypeMgtPluginException e) {
try {
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().rollbackTransaction();
} catch (DeviceTypeMgtPluginException transactionException) {
String msg = "Error occurred while rolling back transaction for device: " + deviceId.getId();
log.warn(msg, transactionException);
}
throw new DeviceManagementException( throw new DeviceManagementException(
"Error occurred while fetching the " + deviceType + " device: '" + deviceId.getId() + "'", e); "Error occurred while fetching the " + deviceType + " device: '" + deviceId.getId() + "'", e);
} }
@ -521,9 +551,17 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
log.debug("Fetching the details of all " + deviceType + " devices"); log.debug("Fetching the details of all " + deviceType + " devices");
} }
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
devices = deviceTypePluginDAOManager.getDeviceDAO().getAllDevices(); devices = deviceTypePluginDAOManager.getDeviceDAO().getAllDevices();
} catch (DeviceTypeMgtPluginException e) { } catch (DeviceTypeMgtPluginException e) {
throw new DeviceManagementException("Error occurred while fetching all " + deviceType + " devices", e); throw new DeviceManagementException("Error occurred while fetching all " + deviceType + " devices", e);
} finally {
try {
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().closeConnection();
} catch (DeviceTypeMgtPluginException e) {
String msg = "Error occurred while closing the transaction to get all devices.";
log.warn(msg, e);
}
} }
return devices; return devices;
} }

@ -22,10 +22,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.DeviceManagementException; import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.DeviceManager; import org.wso2.carbon.device.mgt.common.DeviceManager;
import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig;
import org.wso2.carbon.device.mgt.common.InitialOperationConfig; import org.wso2.carbon.device.mgt.common.InitialOperationConfig;
import org.wso2.carbon.device.mgt.common.MonitoringOperation; import org.wso2.carbon.device.mgt.common.MonitoringOperation;
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig; import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
import org.wso2.carbon.device.mgt.common.DeviceStatusTaskPluginConfig;
import org.wso2.carbon.device.mgt.common.ProvisioningConfig; import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager; import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry; import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
@ -136,7 +136,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
ConfigProperties configProperties = pushNotificationProvider.getConfigProperties(); ConfigProperties configProperties = pushNotificationProvider.getConfigProperties();
if (configProperties != null) { if (configProperties != null) {
List<Property> properties = configProperties.getProperty(); List<Property> properties = configProperties.getProperty();
if (properties != null && properties.size() > 0) { if (properties != null && !properties.isEmpty()) {
for (Property property : properties) { for (Property property : properties) {
staticProps.put(property.getName(), property.getValue()); staticProps.put(property.getName(), property.getValue());
} }
@ -154,6 +154,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
} }
private void refreshPlatformConfigurations() { private void refreshPlatformConfigurations() {
//Build up push notification configs to use with push notification provider.
try { try {
PlatformConfiguration deviceTypeConfig = deviceManager.getConfiguration(); PlatformConfiguration deviceTypeConfig = deviceManager.getConfiguration();
if (deviceTypeConfig != null) { if (deviceTypeConfig != null) {
@ -161,14 +162,17 @@ public class DeviceTypeManagerService implements DeviceManagementService {
if (!configuration.isEmpty()) { if (!configuration.isEmpty()) {
Map<String, String> properties = this.getConfigProperty(configuration); Map<String, String> properties = this.getConfigProperty(configuration);
String notifierValue = properties.get(NOTIFIER_PROPERTY); String notifierValue = properties.get(NOTIFIER_PROPERTY);
String enabledNotifierType = notifierType;
//In registry we are keeping local notifier as value "1". Other notifiers will have
// a number grater than 1.
if (notifierValue != null && notifierValue.equals("1")) { if (notifierValue != null && notifierValue.equals("1")) {
notifierType = NOTIFIER_TYPE_LOCAL; enabledNotifierType = NOTIFIER_TYPE_LOCAL;
} }
pushNotificationConfig = new PushNotificationConfig(notifierType, isScheduled, properties); pushNotificationConfig = new PushNotificationConfig(enabledNotifierType, isScheduled, properties);
} }
} }
} catch (DeviceManagementException e) { } catch (DeviceManagementException e) {
log.error("Unable to get the " + type + " platform configuration from registry."); log.error("Unable to get the " + type + " platform configuration from registry.", e);
} }
} }
@ -189,6 +193,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
@Override @Override
public PushNotificationConfig getPushNotificationConfig() { public PushNotificationConfig getPushNotificationConfig() {
//We only need to update push notification configs if this device type uses registry based configs.
if (isRegistryBasedConfigs) { if (isRegistryBasedConfigs) {
refreshPlatformConfigurations(); refreshPlatformConfigurations();
} }

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -74,13 +74,13 @@ if (!user) {
} else { } else {
result = 400; result = 400;
} }
}else if (uriMatcher.match("/{context}/api/devices/sketch/generate_link")) { } else if (uriMatcher.match("/{context}/api/devices/sketch/generate_link")) {
if (!request.getContent()){ if (!request.getContent()){
log.error("Request Payload Is Empty"); log.error("Request Payload Is Empty");
// HTTP status code 400 refers to - Bad request. // HTTP status code 400 refers to - Bad request.
result = 400; result = 400;
}else{ } else{
deviceType = request.getContent()["deviceType"]; deviceType = request.getContent()["deviceType"];
queryString = "?deviceName=" + request.getContent()["deviceName"] +"&deviceType="+ queryString = "?deviceName=" + request.getContent()["deviceName"] +"&deviceType="+
request.getContent()["deviceType"]+"&sketchType="+request.getContent()["sketchType"]; request.getContent()["deviceType"]+"&sketchType="+request.getContent()["sketchType"];

@ -160,7 +160,7 @@
<thead> <thead>
<tr class="sort-row"> <tr class="sort-row">
<th class="no-sort"></th> <th class="no-sort"></th>
<th class="no-sort"></th> <th>By Device Name</th>
<th>By Owner</th> <th>By Owner</th>
<th>By Status</th> <th>By Status</th>
<th>By Platform</th> <th>By Platform</th>
@ -169,7 +169,7 @@
</tr> </tr>
<tr class="filter-row filter-box"> <tr class="filter-row filter-box">
<th class="no-sort"></th> <th class="no-sort"></th>
<th class="no-sort"></th> <th data-for="By Device Name" class="text-filter"></th>
<th data-for="By Owner" class="text-filter"></th> <th data-for="By Owner" class="text-filter"></th>
<th data-for="By Status" class="select-filter data-status"></th> <th data-for="By Status" class="select-filter data-status"></th>
<th data-for="By Platform" class="select-filter data-platform"></th> <th data-for="By Platform" class="select-filter data-platform"></th>

@ -52,22 +52,21 @@ function submitForm(formId) {
uriencodedQueryStr += prefix + input.attr("id") + "=" + input.val(); uriencodedQueryStr += prefix + input.attr("id") + "=" + input.val();
} else if (input.data("param-type") == "form") { } else if (input.data("param-type") == "form") {
var prefix = (uriencodedFormStr == "") ? "" : "&"; var prefix = (uriencodedFormStr == "") ? "" : "&";
if (input.attr("type") == "checkbox" || input.attr("type") == "radio"){ if (input.attr("type") == "checkbox" || input.attr("type") == "radio") {
if (isItemSelected == undefined) {
if (isItemSelected == undefined){
isItemSelected = false; isItemSelected = false;
} }
if (input.is(':checked')){ if (input.is(':checked')) {
isItemSelected = true; isItemSelected = true;
uriencodedFormStr += prefix + input.attr("name") + "=" + input.val(); uriencodedFormStr += prefix + input.attr("name") + "=" + input.val();
} }
}else{ } else {
uriencodedFormStr += prefix + input.attr("id") + "=" + input.val(); uriencodedFormStr += prefix + input.attr("id") + "=" + input.val();
} }
} }
}); });
if (isItemSelected === false){ if (isItemSelected === false) {
title.html("Please Select One Option"); title.html("Please Select One Option");
statusIcon.attr("class", defaultStatusClasses + " fw-error"); statusIcon.attr("class", defaultStatusClasses + " fw-error");
$(modalPopupContent).html(content.html()); $(modalPopupContent).html(content.html());

@ -43,7 +43,7 @@
<i class="fw fw-mobile fw-3x"></i> <i class="fw fw-mobile fw-3x"></i>
</h3> </h3>
<h3 class="text-muted">No device type is available to be displayed.</h3> <h3 class="text-muted">No device type is available to be displayed.</h3>
<a href="https://docs.wso2.com/display/IoTS300/Quick+Start+Guide" target="_blank" <a href="https://docs.wso2.com/display/IoTS320/Quick+Start+Guide" target="_blank"
class="btn-operations btn-default"> class="btn-operations btn-default">
<span class="fw-stack"> <span class="fw-stack">
<i class="fw fw-circle-outline fw-stack-2x"></i> <i class="fw fw-circle-outline fw-stack-2x"></i>

@ -145,7 +145,7 @@ function loadOperationsLog(update) {
$(row.child()).removeClass('log-data-row'); $(row.child()).removeClass('log-data-row');
tr.removeClass('shown'); tr.removeClass('shown');
} else { } else {
invokerUtil.get(uri,(payload) => { invokerUtil.get(uri, function (payload) {
//update the parent status //update the parent status
var payloadObject = JSON.parse(payload); var payloadObject = JSON.parse(payload);
if ( payloadObject["activityStatus"][0]["status"] != rowData["status"] ) { if ( payloadObject["activityStatus"][0]["status"] != rowData["status"] ) {
@ -157,7 +157,7 @@ function loadOperationsLog(update) {
tr.find('i.fw-down').removeClass('fw-down').addClass('fw-up'); tr.find('i.fw-down').removeClass('fw-down').addClass('fw-up');
$(row.child()).addClass('log-data-row'); $(row.child()).addClass('log-data-row');
tr.addClass('shown'); tr.addClass('shown');
},(error) => { },function(error) {
},contentType); },contentType);
} }
@ -178,19 +178,17 @@ function loadOperationsLog(update) {
responseMsg = activityStatus['0'].responses['0'].response; responseMsg = activityStatus['0'].responses['0'].response;
} }
Object.entries(activityStatus).forEach( $. each (payload.activityStatus, function (key, entry) {
([key, entry]) => { logStream += '<div class="row log-entry">' +
logStream += '<div class="row log-entry">' + '<div class="col-lg-8">' +
'<div class="col-lg-8">' + '<div class="log-status"><i class="icon fw ' + getLogStatusIcon(entry.status) + ' "></i>' +
'<div class="log-status"><i class="icon fw ' + getLogStatusIcon(entry.status) + ' "></i>' + '<span>' + entry.status + '</span></div>' +
'<span>' + ((responseMsg == null) ? entry.status : responseMsg) + '</span></div>' + '</div>' +
'</div>' + '<div class="col-lg-4">' +
'<div class="col-lg-4">' + '<div class="log-time text-right"><span>' + entry.updatedTimestamp + '</span></div>' +
'<div class="log-time text-right"><span>' + entry.updatedTimestamp + '</span></div>' + '</div>' +
'</div>' + '</div>';
'</div>'; });
}
);
logStream += '</div></div>'; logStream += '</div></div>';
return logStream; return logStream;

@ -41,8 +41,7 @@ var displayPolicy = function (policyPayloadObj) {
if (!policyPayloadObj.users) { if (!policyPayloadObj.users) {
$("#policy-users").text("NONE"); $("#policy-users").text("NONE");
} } else if (policyPayloadObj.users.length > 0) {
else if (policyPayloadObj.users.length > 0) {
$("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", ")); $("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", "));
} else { } else {
$("#users-row").addClass("hidden"); $("#users-row").addClass("hidden");
@ -59,14 +58,11 @@ var displayPolicy = function (policyPayloadObj) {
} }
} }
$("#policy-groups").text(assignedGroups.toString().split(",").join(", ")); $("#policy-groups").text(assignedGroups.toString().split(",").join(", "));
} else {
$("#policy-groups").text("NONE");
} }
if (!policyPayloadObj.roles) { if (!policyPayloadObj.roles) {
$("#policy-roles").text("NONE"); $("#policy-roles").text("NONE");
} } else if (policyPayloadObj.roles.length > 0) {
else if (policyPayloadObj.roles.length > 0) {
$("#policy-roles").text(policyPayloadObj.roles.toString().split(",").join(", ")); $("#policy-roles").text(policyPayloadObj.roles.toString().split(",").join(", "));
} else { } else {
$("#roles-row").addClass("hidden"); $("#roles-row").addClass("hidden");

@ -17,8 +17,8 @@
}} }}
{{#zone "footer"}} {{#zone "footer"}}
<p> <p>
<span class="hidden-xs">WSO2 IoT Server{{#unless isCloud}} 3.1.0{{/unless}}</span> <span class="hidden-xs">WSO2 IoT Server{{#unless isCloud}} 3.2.0{{/unless}}</span>
<span class="visible-xs-inline">WSO2 IoT Server{{#unless isCloud}} 3.1.0{{/unless}}</span> | &copy; <script>document.write(new Date().getFullYear());</script>, <span class="visible-xs-inline">WSO2 IoT Server{{#unless isCloud}} 3.2.0{{/unless}}</span> | &copy; <script>document.write(new Date().getFullYear());</script>,
<a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All Rights Reserved. <a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All Rights Reserved.
</p> </p>
{{/zone}} {{/zone}}

@ -49,10 +49,10 @@ function onRequest(context) {
} }
} }
} }
var geoServicesEnabled = devicemgtProps.serverConfig.geoLocationConfiguration.isEnabled; var geoServicesEnabled = devicemgtProps.serverConfig.geoLocationConfiguration.enabled;
return { return {
"geoServicesEnabled": geoServicesEnabled, "geoServicesEnabled": geoServicesEnabled,
"deviceTypes": deviceTypesArray, "deviceTypes": deviceTypesArray,
"isAuthorized": isAuthorized "isAuthorized": isAuthorized
}; };
} }

@ -41,12 +41,17 @@ var displayPolicy = function (policyPayloadObj) {
$("#policy-status").html(policyStatus); $("#policy-status").html(policyStatus);
if (policyPayloadObj.users.length > 0) { if (!policyPayloadObj.users) {
$("#policy-users").text("NONE");
} else if (policyPayloadObj.users.length > 0) {
$("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", ")); $("#policy-users").text(policyPayloadObj.users.toString().split(",").join(", "));
} else { } else {
$("#users-row").addClass("hidden"); $("#users-row").addClass("hidden");
} }
if (policyPayloadObj.deviceGroups.length > 0) {
if (!policyPayloadObj.deviceGroups) {
$("#policy-groups").text("NONE");
} else if (policyPayloadObj.deviceGroups.length > 0) {
var deviceGroups = policyPayloadObj.deviceGroups; var deviceGroups = policyPayloadObj.deviceGroups;
var assignedGroups = []; var assignedGroups = [];
for (var index in deviceGroups) { for (var index in deviceGroups) {
@ -55,14 +60,12 @@ var displayPolicy = function (policyPayloadObj) {
} }
} }
$("#policy-groups").text(assignedGroups.toString().split(",").join(", ")); $("#policy-groups").text(assignedGroups.toString().split(",").join(", "));
} else {
$("#policy-groups").text("NONE");
} }
if (policyPayloadObj.roles.length > 0) { if (!policyPayloadObj.roles) {
$("#policy-roles").text(policyPayloadObj.roles.toString().split(",").join(", "));
} else {
$("#roles-row").addClass("hidden"); $("#roles-row").addClass("hidden");
} else if (policyPayloadObj.roles.length > 0) {
$("#policy-roles").text(policyPayloadObj.roles.toString().split(",").join(", "));
} }
var policyId = policyPayloadObj["id"]; var policyId = policyPayloadObj["id"];

@ -17,8 +17,8 @@
}} }}
{{#zone "footer"}} {{#zone "footer"}}
<p> <p>
<span class="hidden-xs">WSO2 IoT Server 3.1.0</span> <span class="hidden-xs">WSO2 IoT Server 3.2.0</span>
<span class="visible-xs-inline">WSO2 IoT Server 3.1.0</span> | © <script>document.write(new Date().getFullYear());</script>, <span class="visible-xs-inline">WSO2 IoT Server 3.2.0</span> | © <script>document.write(new Date().getFullYear());</script>,
<a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All Rights Reserved. <a href="http://wso2.com/" target="_blank"><i class="icon fw fw-wso2"></i> Inc</a>. All Rights Reserved.
</p> </p>
{{/zone}} {{/zone}}

@ -23,7 +23,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<artifactId>device-mgt</artifactId> <artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>email-sender</artifactId> <artifactId>email-sender</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,13 +22,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>identity-extensions</artifactId> <artifactId>identity-extensions</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.oauth.extensions</artifactId> <artifactId>org.wso2.carbon.device.mgt.oauth.extensions</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - OAuth Extensions</name> <name>WSO2 Carbon - OAuth Extensions</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>identity-extensions</artifactId> <artifactId>identity-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>identity-extensions</artifactId> <artifactId>identity-extensions</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.complex.policy.decision.point</artifactId> <artifactId>org.wso2.carbon.complex.policy.decision.point</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Policy Decision Point</name> <name>WSO2 Carbon - Policy Decision Point</name>
<description>WSO2 Carbon - Policy Decision Point</description> <description>WSO2 Carbon - Policy Decision Point</description>

@ -3,14 +3,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.policy.decision.point</artifactId> <artifactId>org.wso2.carbon.policy.decision.point</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Policy Decision Point</name> <name>WSO2 Carbon - Policy Decision Point</name>
<description>WSO2 Carbon - Policy Decision Point</description> <description>WSO2 Carbon - Policy Decision Point</description>

@ -3,7 +3,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
@ -11,7 +11,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.policy.information.point</artifactId> <artifactId>org.wso2.carbon.policy.information.point</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Policy Information Point</name> <name>WSO2 Carbon - Policy Information Point</name>
<description>WSO2 Carbon - Policy Information Point</description> <description>WSO2 Carbon - Policy Information Point</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.policy.mgt.common</artifactId> <artifactId>org.wso2.carbon.policy.mgt.common</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Policy Management Common</name> <name>WSO2 Carbon - Policy Management Common</name>
<description>WSO2 Carbon - Policy Management Common</description> <description>WSO2 Carbon - Policy Management Common</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.policy.mgt.core</artifactId> <artifactId>org.wso2.carbon.policy.mgt.core</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Policy Management Core</name> <name>WSO2 Carbon - Policy Management Core</name>
<description>WSO2 Carbon - Policy Management Core</description> <description>WSO2 Carbon - Policy Management Core</description>

@ -23,13 +23,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>policy-mgt</artifactId> <artifactId>policy-mgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Policy Management Component</name> <name>WSO2 Carbon - Policy Management Component</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -21,14 +21,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>webapp-authenticator-framework</artifactId> <artifactId>webapp-authenticator-framework</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>org.wso2.carbon.webapp.authenticator.framework</artifactId> <artifactId>org.wso2.carbon.webapp.authenticator.framework</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>bundle</packaging> <packaging>bundle</packaging>
<name>WSO2 Carbon - Web Application Authenticator Framework Bundle</name> <name>WSO2 Carbon - Web Application Authenticator Framework Bundle</name>
<description>WSO2 Carbon - Web Application Authenticator Framework Bundle</description> <description>WSO2 Carbon - Web Application Authenticator Framework Bundle</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>webapp-authenticator-framework</artifactId> <artifactId>webapp-authenticator-framework</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Webapp Authenticator Framework</name> <name>WSO2 Carbon - Webapp Authenticator Framework</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -21,14 +21,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId> <artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.application.extension.feature</artifactId> <artifactId>org.wso2.carbon.apimgt.application.extension.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - API Management Application Extension Feature</name> <name>WSO2 Carbon - API Management Application Extension Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains an implementation of a api application registration, which takes care of subscription <description>This feature contains an implementation of a api application registration, which takes care of subscription

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId> <artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.handler.server.feature</artifactId> <artifactId>org.wso2.carbon.apimgt.handler.server.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management - APIM handler Server Feature</name> <name>WSO2 Carbon - Device Management - APIM handler Server Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the handler for the api authentications <description>This feature contains the handler for the api authentications

@ -21,13 +21,13 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId> <artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.integration.client.feature</artifactId> <artifactId>org.wso2.carbon.apimgt.integration.client.feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - APIM Integration Client Feature</name> <name>WSO2 Carbon - APIM Integration Client Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -21,14 +21,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId> <artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.webapp.publisher.feature</artifactId> <artifactId>org.wso2.carbon.apimgt.webapp.publisher.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - API Management Webapp Publisher Feature</name> <name>WSO2 Carbon - API Management Webapp Publisher Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing <description>This feature contains an implementation of a Tomcat lifecycle listener, which takes care of publishing

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId> <artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - API Management Extensions Feature</name> <name>WSO2 Carbon - API Management Extensions Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt-feature</artifactId> <artifactId>certificate-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt-feature</artifactId> <artifactId>certificate-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt-feature</artifactId> <artifactId>certificate-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.certificate.mgt.server.feature</artifactId> <artifactId>org.wso2.carbon.certificate.mgt.server.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Certificate Management Server Feature</name> <name>WSO2 Carbon - Certificate Management Server Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the core bundles required for back-end Certificate Management functionality <description>This feature contains the core bundles required for back-end Certificate Management functionality

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>certificate-mgt-feature</artifactId> <artifactId>certificate-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>WSO2 Carbon - Certificate Management Feature</name> <name>WSO2 Carbon - Certificate Management Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-extensions-feature</artifactId> <artifactId>device-mgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.device.type.deployer.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Device Type Deployer Feature</name> <name>WSO2 Carbon - Device Type Deployer Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>WSO2 Carbon - Device Type Deployer Feature</description> <description>WSO2 Carbon - Device Type Deployer Feature</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-extensions-feature</artifactId> <artifactId>device-mgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - FCM Based Push Notification Provider Feature</name> <name>WSO2 Carbon - FCM Based Push Notification Provider Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description> <description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-extensions-feature</artifactId> <artifactId>device-mgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.http.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name> <name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description> <description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-extensions-feature</artifactId> <artifactId>device-mgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name> <name>WSO2 Carbon - MQTT Based Push Notification Provider Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description> <description>WSO2 Carbon - MQTT Based Push Notification Provider Feature</description>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-extensions-feature</artifactId> <artifactId>device-mgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - XMPP Based Push Notification Provider Feature</name> <name>WSO2 Carbon - XMPP Based Push Notification Provider Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>WSO2 Carbon - XMPP Based Push Notification Provider Feature</description> <description>WSO2 Carbon - XMPP Based Push Notification Provider Feature</description>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.analytics.data.publisher.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management Server Feature</name> <name>WSO2 Carbon - Device Management Server Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains bundles related to device analytics data publisher</description> <description>This feature contains bundles related to device analytics data publisher</description>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -52,6 +52,14 @@ CREATE TABLE IF NOT EXISTS DM_COMMAND_OPERATION_ARCH (
PRIMARY KEY (OPERATION_ID) PRIMARY KEY (OPERATION_ID)
)ENGINE = InnoDB; )ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS DM_CONFIG_OPERATION_ARCH (
OPERATION_ID INTEGER NOT NULL,
OPERATION_CONFIG BLOB DEFAULT NULL,
ENABLED BOOLEAN NOT NULL DEFAULT FALSE,
ARCHIVED_AT TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (OPERATION_ID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION_ARCH ( CREATE TABLE IF NOT EXISTS DM_PROFILE_OPERATION_ARCH (
OPERATION_ID INTEGER NOT NULL, OPERATION_ID INTEGER NOT NULL,
ENABLED INTEGER NOT NULL DEFAULT 0, ENABLED INTEGER NOT NULL DEFAULT 0,

@ -4,14 +4,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.extensions.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.extensions.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management Extensions Feature</name> <name>WSO2 Carbon - Device Management Extensions Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains common extensions used by key device management functionalities <description>This feature contains common extensions used by key device management functionalities

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,14 +22,14 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.device.mgt.server.feature</artifactId> <artifactId>org.wso2.carbon.device.mgt.server.feature</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<name>WSO2 Carbon - Device Management Server Feature</name> <name>WSO2 Carbon - Device Management Server Feature</name>
<url>http://wso2.org</url> <url>http://wso2.org</url>
<description>This feature contains the core bundles required for Back-end Device Management functionality <description>This feature contains the core bundles required for Back-end Device Management functionality

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>device-mgt-feature</artifactId> <artifactId>device-mgt-feature</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>org.wso2.carbon.devicemgt</groupId> <groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>carbon-devicemgt</artifactId> <artifactId>carbon-devicemgt</artifactId>
<version>3.0.232-SNAPSHOT</version> <version>3.0.243-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save