revert-70aa11f8
Arcane94 7 years ago
commit 2fb5ec431a

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

@ -21,12 +21,12 @@
<parent>
<artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version>
<version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<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>
<packaging>war</packaging>
<name>WSO2 Carbon - API Application Management API</name>

@ -22,12 +22,12 @@
<parent>
<artifactId>apimgt-extensions</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version>
<version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<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>
<packaging>bundle</packaging>
<name>WSO2 Carbon - API Application Management</name>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -60,8 +60,8 @@ import javax.ws.rs.core.Response;
}
)
@Path("/configuration")
@Api(value = "Configuration Management", description = "The general platform configuration management capabilities are exposed " +
"through this API.")
@Api(value = "Configuration Management", description = "The general platform configuration management capabilities " +
"are exposed through this API.")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Scopes(scopes = {
@ -86,9 +86,9 @@ public interface ConfigurationManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting General Platform Configurations",
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. " +
"Using this REST API you can get the general platform level configurations.",
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." + "Using this REST API you can get the general platform level configurations.",
tags = "Configuration Management",
extensions = {
@Extension(properties = {
@ -119,7 +119,8 @@ public interface ConfigurationManagementService {
),
@ApiResponse(
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(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported."),
@ -146,8 +147,8 @@ public interface ConfigurationManagementService {
httpMethod = "PUT",
value = "Updating General Platform Configurations",
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." +
"Using this REST API you can update the general platform level configurations.",
"General platform configurations include the settings on how often the the device need to be " +
"monitored. Using this REST API you can update the general platform level configurations.",
tags = "Configuration Management",
extensions = {
@Extension(properties = {

@ -112,8 +112,8 @@ public interface DeviceAgentService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Create a device instance",
notes = "Create a device Instance",
value = "Creating 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",
extensions = {
@Extension(properties = {
@ -157,7 +157,7 @@ public interface DeviceAgentService {
"Server error occurred while retrieving the device details.",
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);
@DELETE
@ -186,7 +186,7 @@ public interface DeviceAgentService {
"Server error occurred while dis-enrolling the device.")
})
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);
@PUT
@ -194,8 +194,8 @@ public interface DeviceAgentService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "modify device",
notes = "modify device",
value = "Updating the Device Details",
notes = "You are able to update the details of a device using the API.",
tags = "Device Agent Management",
extensions = {
@Extension(properties = {
@ -239,15 +239,15 @@ public interface DeviceAgentService {
"Server error occurred while retrieving the device details.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@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);
@POST
@Path("/events/publish/{type}/{deviceId}")
@Path("events/publish{type}/{deviceId}")
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
@ -303,11 +303,11 @@ public interface DeviceAgentService {
Map<String, Object> payloadData,
@ApiParam(
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,
@ApiParam(
name = "deviceId",
value = "deviceId of the device")
value = "The device ID.")
@PathParam("deviceId") String deviceId);
@POST
@ -317,7 +317,8 @@ public interface DeviceAgentService {
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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",
extensions = {
@Extension(properties = {
@ -343,7 +344,8 @@ public interface DeviceAgentService {
}),
@ApiResponse(
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 = {
@ResponseHeader(
name = "Content-Location",
@ -353,7 +355,8 @@ public interface DeviceAgentService {
message = "Bad Request. \n Invalid request or validation error."),
@ApiResponse(
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(
code = 500,
message = "Internal Server Error. \n " +
@ -380,8 +383,8 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Get pending operation of the given device",
notes = "Returns the Operations.",
value = "Getting All the Pending Operations of a Device",
notes = "You can get all the list of pending operations of a device.",
tags = "Device Agent Management",
extensions = {
@Extension(properties = {
@ -405,7 +408,8 @@ public interface DeviceAgentService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
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."),
}),
@ApiResponse(
@ -426,9 +430,9 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId);
@GET
@ -437,8 +441,9 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Get pending operation of the given device",
notes = "Returns the Operation.",
value = "Getting the Next Pending Operations of a Device",
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",
extensions = {
@Extension(properties = {
@ -483,9 +488,10 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId);
@PUT
@ -494,7 +500,7 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Update Operation",
value = "Updating an Operation",
notes = "Update the Operations.",
tags = "Device Agent Management",
extensions = {
@ -539,11 +545,12 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@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);
@PUT
@ -552,7 +559,7 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Update Properties",
value = "Updating Device Properties",
notes = "Update device properties.",
tags = "Device Agent Management",
extensions = {
@ -597,11 +604,12 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@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);
@GET
@ -610,8 +618,9 @@ public interface DeviceAgentService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Get pending operation of the given device",
notes = "Returns the Operations.",
value = "Getting Specific Operations of a Device",
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",
extensions = {
@Extension(properties = {
@ -656,9 +665,10 @@ public interface DeviceAgentService {
"Server error occurred while retrieving information requested device.",
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,
@ApiParam(name = "id", value = "The device id.", required = true)
@ApiParam(name = "id", value = "The device ID.", required = true)
@PathParam("id") String deviceId,
@ApiParam(name = "status", value = "status of the operation.", required = true)
@QueryParam("status")Operation.Status status);

@ -77,8 +77,8 @@ public interface DeviceEventManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Add Event Type Defnition",
notes = "Add the event definition for the device.",
value = "Adding the Event Type Definition",
notes = "Add the event definition for a device.",
tags = "Device Event Management",
extensions = {
@Extension(properties = {
@ -120,9 +120,11 @@ public interface DeviceEventManagementService {
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,
@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);
@DELETE
@ -130,8 +132,8 @@ public interface DeviceEventManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "DELETE",
value = "Delete Event Type Defnition",
notes = "Delete the event definition for the device.",
value = "Delete Event Type Definition",
notes = "Delete the event definition of a device.",
tags = "Device Event Management",
extensions = {
@Extension(properties = {
@ -173,7 +175,8 @@ public interface DeviceEventManagementService {
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);
@GET
@ -244,7 +247,7 @@ public interface DeviceEventManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
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",
extensions = {
@Extension(properties = {
@ -287,9 +290,9 @@ public interface DeviceEventManagementService {
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,
@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);
@GET
@ -297,7 +300,7 @@ public interface DeviceEventManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting Event Type Defnition",
value = "Getting Event Type Definition",
notes = "Get the event definition for the device.",
tags = "Device Event Management",
extensions = {
@ -341,7 +344,8 @@ public interface DeviceEventManagementService {
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) ;
}

@ -208,13 +208,13 @@ public interface DeviceManagementService {
Response getDevices(
@ApiParam(
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)
@Size(max = 45)
String name,
@ApiParam(
name = "type",
value = "The device type, such as ios, android or windows.",
value = "The device type, such as ios, android, or windows.",
required = false)
@QueryParam("type")
@Size(max = 45)
@ -227,7 +227,7 @@ public interface DeviceManagementService {
String user,
@ApiParam(
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)
@QueryParam("userPattern")
String userPattern,
@ -303,8 +303,8 @@ public interface DeviceManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Getting Details of Registered Devices owned by authenticated user",
notes = "Provides details of devices enrolled by authenticated user.",
value = "Getting Details of Registered Devices Owned by an Authenticated User",
notes = "Provides details of devices enrolled by authenticated users.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ -460,8 +460,8 @@ public interface DeviceManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
value = "Get device enrollment status",
notes = "Get device enrollment status",
value = "Getting the Device Enrollment Status",
notes = "Get the device enrollment status and the device details of the device.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ -564,7 +564,7 @@ public interface DeviceManagementService {
Response getDeviceLocation(
@ApiParam(
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)
@PathParam("type")
@Size(max = 45)
@ -592,7 +592,7 @@ public interface DeviceManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
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.",
tags = "Device Management",
extensions = {
@ -641,7 +641,7 @@ public interface DeviceManagementService {
Response getDeviceInformation(
@ApiParam(
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)
@PathParam("type")
@Size(max = 45)
@ -670,8 +670,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Update the device specified by device id",
notes = "Returns the status of the updated device operation.",
value = "Update the Displayed Name of the Device",
notes = "Use this API to rename a device so that it is easy for you to identify devices.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ -719,12 +719,12 @@ public interface DeviceManagementService {
Response renameDevice(
@ApiParam(
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)
Device device,
@ApiParam(
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)
@PathParam("device-type")
@Size(max = 45)
@ -745,8 +745,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "DELETE",
value = "Remove the device specified by device id",
notes = "Returns the status of the deleted device operation.",
value = "Remove the Device Specified by the Device ID",
notes = "Returns the status of the deleted device operation and the details of the deleted device.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ -794,7 +794,7 @@ public interface DeviceManagementService {
Response deleteDevice(
@ApiParam(
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)
@PathParam("device-type")
@Size(max = 45)
@ -1041,7 +1041,7 @@ public interface DeviceManagementService {
Response getInstalledApplications(
@ApiParam(
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)
@PathParam("type")
@Size(max = 45)
@ -1190,7 +1190,7 @@ public interface DeviceManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
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." +
"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.",
@ -1252,14 +1252,14 @@ public interface DeviceManagementService {
Response getEffectivePolicyOfDevice(
@ApiParam(
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)
@PathParam("type")
@Size(max = 45)
String type,
@ApiParam(
name = "id",
value = "The device identifier.",
value = "The device ID.",
required = true)
@PathParam("id")
@Size(max = 45)
@ -1327,8 +1327,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Change device status by device id.",
notes = "Returns the status of the changed device operation.",
value = "Changing the Status of a Device",
notes = "Change the status of a device from one state to another.",
tags = "Device Management",
extensions = {
@Extension(properties = {
@ -1376,21 +1376,21 @@ public interface DeviceManagementService {
Response changeDeviceStatus(
@ApiParam(
name = "type",
value = "The device type, such as ios, android or windows.",
value = "The device type, such as ios, android, or windows.",
required = true)
@PathParam("type")
@Size(max = 45)
String type,
@ApiParam(
name = "id",
value = "Device id",
value = "Device ID.",
required = true)
@PathParam("id")
@Size(max = 45)
String id,
@ApiParam(
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)
@QueryParam("newStatus")
EnrolmentInfo.Status newStatus);
@ -1401,8 +1401,8 @@ public interface DeviceManagementService {
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
value = "Add operation to set of devices for a given device type",
notes = "Returns the Activity Related to the operation.",
value = "Sending an Operation to Specific Device Types",
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",
extensions = {
@Extension(properties = {

@ -92,8 +92,8 @@ public interface GeoLocationBasedService {
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Retrieve Analytics for the device type",
notes = "",
value = "Getting the Location Details of a Device",
notes = "Get the location details of a device during a define time period.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -131,24 +131,24 @@ public interface GeoLocationBasedService {
Response getGeoDeviceStats(
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
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)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
@ApiParam(
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)
@QueryParam("from") long from,
@ApiParam(
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)
@QueryParam("to") long to);
@ -161,8 +161,8 @@ public interface GeoLocationBasedService {
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Retrieve locations of devices",
notes = "",
value = "Getting the Devices in a Defined Geofence",
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,
tags = "Geo Service Management",
extensions = {
@ -200,28 +200,33 @@ public interface GeoLocationBasedService {
Response getGeoDeviceLocations(
@ApiParam(
name = "minLat",
value = "minimum latitude",
required = true)
value = "Define the minimum latitude of the geofence.",
required = true,
defaultValue ="79.85213577747345")
@QueryParam("minLat") double minLat,
@ApiParam(
name = "maxLat",
value = "maxmimum latitude",
required = true)
value = "Define the maximum latitude of the geofence.",
required = true,
defaultValue ="79.85266149044037")
@QueryParam("maxLat") double maxLat,
@ApiParam(
name = "minLong",
value = "minimum longitude",
required = true)
value = "Define the minimum longitude of the geofence.",
required = true,
defaultValue ="6.909673257977737")
@QueryParam("minLong") double minLong,
@ApiParam(
name = "maxLong",
value = "maximum longitudeude",
required = true)
value = "Define the maximum longitude of the geofence",
required = true,
defaultValue ="6.909673257977737")
@QueryParam("maxLong") double maxLong,
@ApiParam(
name = "zoom",
value = "zoom level",
required = true)
value = "Define the level to zoom or scale the map. You can define any value between 1 to 14.",
required = true,
defaultValue ="2")
@QueryParam("zoom") int zoom);
@ -233,9 +238,9 @@ public interface GeoLocationBasedService {
@ApiOperation(
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Create Geo alerts for the device",
notes = "",
httpMethod = "POST",
value = "Retrieving a Specific Geo Alert Type from a Device",
notes = "Retrieve a specific geo alert from a device, such as getting a speed alert that was sent to a device.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -274,19 +279,19 @@ public interface GeoLocationBasedService {
@Valid Alert alert,
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
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)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
@ApiParam(
name = "alertType",
value = "The alert type, such as Within, Speed, Stationary",
value = "The alert type, such as Within, Speed,Exit, or Stationary.",
required = true)
@PathParam("alertType") String alertType);
@ -298,9 +303,9 @@ public interface GeoLocationBasedService {
@ApiOperation(
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Update Geo alerts for the device",
notes = "",
httpMethod = "PUT",
value = "Updating the Geo Alerts of a Device",
notes = "Update the a geo alert that was sent to a device.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -339,19 +344,19 @@ public interface GeoLocationBasedService {
@Valid Alert alert,
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
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)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
@ApiParam(
name = "alertType",
value = "The alert type, such as Within, Speed, Stationary",
value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true)
@PathParam("alertType") String alertType);
@ -364,8 +369,8 @@ public interface GeoLocationBasedService {
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Retrieve Geo alerts for the device",
notes = "",
value = "Getting a Geo Alert from a Device",
notes = "Retrieve a specific geo alert from a device, such as getting a speed alert that was sent to a device.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -403,19 +408,19 @@ public interface GeoLocationBasedService {
Response getGeoAlerts(
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
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)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
@ApiParam(
name = "alertType",
value = "The alert type, such as Within, Speed, Stationary",
value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true)
@PathParam("alertType") String alertType);
@ -428,8 +433,8 @@ public interface GeoLocationBasedService {
consumes = "application/json",
produces = "application/json",
httpMethod = "GET",
value = "Retrieve Geo alerts history for the device",
notes = "",
value = "Getting the Geo Service Alert History of a Device",
notes = "Get the geo alert history of a device during the defined time period.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -467,24 +472,24 @@ public interface GeoLocationBasedService {
Response getGeoAlertsHistory(
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
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)
@PathParam("deviceType")
@Size(max = 45)
String deviceType,
@ApiParam(
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)
@QueryParam("from") long from,
@ApiParam(
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)
@QueryParam("to") long to);
@ -494,8 +499,8 @@ public interface GeoLocationBasedService {
consumes = "application/json",
produces = "application/json",
httpMethod = "DELETE",
value = "Deletes Geo alerts for the device",
notes = "",
value = "Deleting a Geo Alert from a Device",
notes = "Delete a specific geo alert from a device, such as deleting a speed alert that was sent to the device.",
response = Response.class,
tags = "Geo Service Management",
extensions = {
@ -529,22 +534,23 @@ public interface GeoLocationBasedService {
Response removeGeoAlerts(
@ApiParam(
name = "deviceId",
value = "The registered device Id.",
value = "The device ID.",
required = true)
@PathParam("deviceId") String deviceId,
@ApiParam(
name = "deviceType",
value = "The device type, such as ios, android or windows.",
value = "The device type, such as ios, android, or windows.",
required = true)
@PathParam("deviceType") String deviceType,
@ApiParam(
name = "alertType",
value = "The alert type, such as Within, Speed, Stationary",
value = "The alert type, such as Within, Speed, Exit, or Stationary",
required = true)
@PathParam("alertType") String alertType,
@ApiParam(
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)
@QueryParam("queryName") String queryName);
}

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

@ -221,9 +221,9 @@ public interface NotificationManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
httpMethod = "PUT",
value = "Clear all notifications",
value = "Clearing All Notifications",
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",
extensions = {
@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")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ -148,8 +149,10 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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." +
"Using this REST API you are able to save a created Policy and this policy will be in the inactive state.",
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." +
"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",
extensions = {
@Extension(properties = {
@ -181,7 +184,8 @@ public interface PolicyManagementService {
),
@ApiResponse(
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 = {
@ResponseHeader(
name = "Content-Location",
@ -192,11 +196,13 @@ public interface PolicyManagementService {
response = ErrorResponse.class),
@ApiResponse(
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),
@ApiResponse(
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(
code = 500,
message = "Internal Server Error. \n " +
@ -248,7 +254,8 @@ public interface PolicyManagementService {
),
@ApiResponse(
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(
code = 400,
message = "Bad Request. \n Invalid request or validation error.",
@ -322,7 +329,8 @@ public interface PolicyManagementService {
),
@ApiResponse(
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(
code = 404,
message = "Not Found. \n A specified policy was not found.",
@ -400,7 +408,8 @@ public interface PolicyManagementService {
response = ErrorResponse.class),
@ApiResponse(
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(
code = 500,
message = "Internal Server Error. \n " +
@ -451,7 +460,8 @@ public interface PolicyManagementService {
response = ErrorResponse.class),
@ApiResponse(
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."),
@ApiResponse(
code = 500,
@ -474,7 +484,8 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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",
extensions = {
@Extension(properties = {
@ -515,7 +526,8 @@ public interface PolicyManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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",
extensions = {
@Extension(properties = {
@ -655,7 +667,8 @@ public interface PolicyManagementService {
),
@ApiResponse(
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(
code = 404,
message = "Not Found. \n A specified policy was not found.",

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

@ -185,7 +185,7 @@ public interface RoleManagementService {
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
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" +
"Note: Internal roles, roles created for service-providers, and application related roles will not be given in the output.",
tags = "Role Management",
@ -482,7 +482,9 @@ public interface RoleManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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",
extensions = {
@Extension(properties = {
@ -511,7 +513,8 @@ public interface RoleManagementService {
"Used by caches, or in conditional requests.")}),
@ApiResponse(
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 = {
@ResponseHeader(
name = "Content-Location",
@ -597,7 +600,8 @@ public interface RoleManagementService {
name = "role",
value = "The properties required to update a role.\n" +
"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,
@ApiParam(
name = "user-store",
@ -610,7 +614,8 @@ public interface RoleManagementService {
@ApiOperation(
httpMethod = "DELETE",
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.",
tags = "Role Management",
extensions = {
@ -659,8 +664,10 @@ public interface RoleManagementService {
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 " +
"a role using this REST API.\n" +
"Example: Your Organization hires 30 new engineers. Updating the role details for each user can " +
"be cumbersome. Therefore, you can define all the new employees that belong to the engineering " +
"Example: Your Organization hires 30 new engineers. Updating the role details for each user " +
"can " +
"be cumbersome. Therefore, you can define all the new employees that belong to the " +
"engineering " +
"role using this API.",
tags = "Role Management",
extensions = {
@ -684,7 +691,8 @@ public interface RoleManagementService {
"Used by caches, or in conditional requests."),
@ResponseHeader(
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.")}),
@ApiResponse(
code = 400,
@ -696,7 +704,8 @@ public interface RoleManagementService {
response = ErrorResponse.class),
@ApiResponse(
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.",
response = ErrorResponse.class),
@ApiResponse(

@ -155,7 +155,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
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",
extensions = {
@Extension(properties = {
@ -243,7 +244,8 @@ public interface UserManagementService {
}),
@ApiResponse(
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(
code = 404,
message = "Not Found. \n The specified resource does not exist.",
@ -351,7 +353,8 @@ public interface UserManagementService {
@ApiOperation(
httpMethod = "DELETE",
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",
extensions = {
@Extension(properties = {
@ -378,7 +381,8 @@ public interface UserManagementService {
@ApiParam(
name = "username",
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,
defaultValue = "[Create a new user named Jim, and then try out this API.]")
@PathParam("username") String username,
@ -394,7 +398,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
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",
extensions = {
@Extension(properties = {
@ -422,7 +427,8 @@ public interface UserManagementService {
}),
@ApiResponse(
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(
code = 404,
message = "Not Found. \n The specified resource does not exist.\n",
@ -455,7 +461,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
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",
tags = "User Management",
extensions = {
@ -492,7 +499,8 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
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 getUsers(
@ -551,7 +559,8 @@ public interface UserManagementService {
response = ErrorResponse.class),
@ApiResponse(
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 getUserCount();
@ -602,7 +611,8 @@ public interface UserManagementService {
produces = MediaType.APPLICATION_JSON,
httpMethod = "GET",
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. "
+ "You will be given a list of users having the user name in the exact order of the "
+ "characters you provided.",
@ -634,14 +644,16 @@ public interface UserManagementService {
}),
@ApiResponse(
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(
code = 406,
message = "Not Acceptable.\n The requested media type is not supported",
response = ErrorResponse.class),
@ApiResponse(
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 getUserNames(
@ -727,7 +739,9 @@ public interface UserManagementService {
httpMethod = "POST",
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" +
"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",
extensions = {
@Extension(properties = {

@ -521,7 +521,7 @@ public class DeviceAgentServiceImpl implements DeviceAgentService {
@Override
@PUT
@Path("/operations/{type}/{id}")
@Path("/properties/{type}/{id}")
public Response updateDeviceProperties(@PathParam("type") String type, @PathParam("id") String deviceId,
@Valid List<Device.Property> properties) {
try {
@ -542,13 +542,16 @@ public class DeviceAgentServiceImpl implements DeviceAgentService {
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) {
String errorMessage = "Issue in retrieving device management service instance";
log.error(errorMessage, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(errorMessage).build();
}
return null;
}
@GET

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

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

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

@ -111,6 +111,12 @@ public class ArchivalServiceImpl implements ArchivalService {
}
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
if (log.isDebugEnabled()) {
log.debug("## Purging enrolment mappings");

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

@ -56,8 +56,8 @@ public class ArchivalDAOImpl implements ArchivalDAO {
try {
Connection conn = ArchivalSourceDAOFactory.getConnection();
String sql = "SELECT DISTINCT OPERATION_ID FROM DM_ENROLMENT_OP_MAPPING " +
"WHERE CREATED_TIMESTAMP BETWEEN DATE_SUB(NOW(), INTERVAL " +
this.retentionPeriod + " DAY) AND NOW()";
"WHERE CREATED_TIMESTAMP BETWEEN DATE(TIMESTAMPADD(DAY, " +
this.retentionPeriod + ", NOW())) AND NOW()";
stmt = this.createMemoryEfficientStatement(conn);
rs = stmt.executeQuery(sql);
while (rs.next()) {
@ -83,7 +83,8 @@ public class ArchivalDAOImpl implements ArchivalDAO {
Connection conn = ArchivalSourceDAOFactory.getConnection();
String sql = "SELECT DISTINCT OPERATION_ID " +
" 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);
rs = stmt.executeQuery(sql);
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
public void moveEnrolmentMappings() throws ArchivalDAOException {
Statement stmt = null;

@ -29,6 +29,7 @@ public class ArchivalTaskConfiguration {
private int retentionPeriod;
private int batchSize;
private PurgingTaskConfiguration purgingTaskConfiguration;
private final int MULTIPLIER = -1;
@XmlElement(name = "Enabled", required = true)
public boolean isEnabled() {
@ -59,7 +60,8 @@ public class ArchivalTaskConfiguration {
@XmlElement(name = "RetentionPeriod", required = true)
public int getRetentionPeriod() {
return retentionPeriod;
// multiply by -1 to get the diff
return retentionPeriod * MULTIPLIER;
}
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.LogFactory;
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.DeviceIdentifier;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
@ -67,7 +68,9 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 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 DeviceDAO deviceDAO;
private EnrollmentDAO enrollmentDAO;
private NotificationStrategy notificationStrategy;
private String deviceType;
private DeviceManagementService deviceManagementService;
private long lastUpdatedTimeStamp = 0;
private Map<Integer, NotificationStrategy> notificationStrategies;
private Map<Integer, Long> lastUpdatedTimeStamps;
public OperationManagerImpl() {
commandOperationDAO = OperationManagementDAOFactory.getCommandOperationDAO();
@ -102,6 +105,8 @@ public class OperationManagerImpl implements OperationManager {
operationDAO = OperationManagementDAOFactory.getOperationDAO();
deviceDAO = DeviceManagementDAOFactory.getDeviceDAO();
enrollmentDAO = DeviceManagementDAOFactory.getEnrollmentDAO();
notificationStrategies = new HashMap<>();
lastUpdatedTimeStamps = new HashMap<>();
}
public OperationManagerImpl(String deviceType, DeviceManagementService deviceManagementService) {
@ -111,23 +116,32 @@ public class OperationManagerImpl implements OperationManager {
}
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) {
PushNotificationConfig pushNoteConfig = deviceManagementService.getPushNotificationConfig();
if (pushNoteConfig != null && !NOTIFIER_TYPE_LOCAL.equals(pushNoteConfig.getType())) {
PushNotificationProvider provider = DeviceManagementDataHolder.getInstance()
.getPushNotificationProviderRepository().getProvider(pushNoteConfig.getType());
if (provider == null) {
log.error("No registered push notification provider found for the type: '" +
pushNoteConfig.getType() + "'.");
log.error("No registered push notification provider found for the type '" +
pushNoteConfig.getType() + "' under tenant ID '" + tenantId + "'.");
return null;
}
notificationStrategy = provider.getNotificationStrategy(pushNoteConfig);
} else {
notificationStrategy = null;
notificationStrategies.put(tenantId, provider.getNotificationStrategy(pushNoteConfig));
} else if (notificationStrategies.containsKey(tenantId)){
notificationStrategies.remove(tenantId);
}
lastUpdatedTimeStamp = Calendar.getInstance().getTimeInMillis();
lastUpdatedTimeStamps.put(tenantId, Calendar.getInstance().getTimeInMillis());
}
return notificationStrategy;
return notificationStrategies.get(tenantId);
}
@Override
@ -164,7 +178,7 @@ public class OperationManagerImpl implements OperationManager {
boolean isScheduledOperation = this.isTaskScheduledOperation(operation);
boolean isNotRepeated = 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
// notification using scheduler task

@ -22,7 +22,7 @@
<parent>
<artifactId>device-mgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.0.232-SNAPSHOT</version>
<version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</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.LicenseManagementException;
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.exception.DeviceTypeDeployerPayloadException;
import org.wso2.carbon.device.mgt.extensions.device.type.template.exception.DeviceTypeMgtPluginException;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DataSource;
import org.wso2.carbon.device.mgt.extensions.device.type.template.config.DeviceDetails;
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.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.util.DeviceTypePluginConstants;
import org.wso2.carbon.device.mgt.extensions.device.type.template.util.DeviceTypeUtils;
@ -108,7 +113,7 @@ public class DeviceTypeManager implements DeviceManager {
}
}
} 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);
}
claimable = false;
@ -346,6 +351,7 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) {
log.debug("Checking the enrollment of Android device : " + deviceId.getId());
}
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
Device device =
deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId());
if (device != null) {
@ -353,8 +359,16 @@ public class DeviceTypeManager implements DeviceManager {
}
} catch (DeviceTypeMgtPluginException e) {
String msg = "Error while checking the enrollment status of " + deviceType + " device : " +
deviceId.getId();
deviceId.getId();
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;
}
@ -383,10 +397,18 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) {
log.debug("Getting the details of " + deviceType + " device : '" + deviceId.getId() + "'");
}
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
device = deviceTypePluginDAOManager.getDeviceDAO().getDevice(deviceId.getId());
} catch (DeviceTypeMgtPluginException e) {
throw new DeviceManagementException(
"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;
}
@ -405,8 +427,16 @@ public class DeviceTypeManager implements DeviceManager {
Device updatedDevice = new Device();
updatedDevice.setDeviceIdentifier(deviceId.getId());
updatedDevice.setProperties(propertyList);
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
status = deviceTypePluginDAOManager.getDeviceDAO().updateDevice(updatedDevice);
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().commitTransaction();
} 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(
"Error occurred while fetching the " + deviceType + " device: '" + deviceId.getId() + "'", e);
}
@ -521,9 +551,17 @@ public class DeviceTypeManager implements DeviceManager {
if (log.isDebugEnabled()) {
log.debug("Fetching the details of all " + deviceType + " devices");
}
deviceTypePluginDAOManager.getDeviceTypeDAOHandler().beginTransaction();
devices = deviceTypePluginDAOManager.getDeviceDAO().getAllDevices();
} catch (DeviceTypeMgtPluginException 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;
}

@ -22,10 +22,10 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
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.MonitoringOperation;
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.app.mgt.ApplicationManager;
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
@ -136,7 +136,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
ConfigProperties configProperties = pushNotificationProvider.getConfigProperties();
if (configProperties != null) {
List<Property> properties = configProperties.getProperty();
if (properties != null && properties.size() > 0) {
if (properties != null && !properties.isEmpty()) {
for (Property property : properties) {
staticProps.put(property.getName(), property.getValue());
}
@ -154,6 +154,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
}
private void refreshPlatformConfigurations() {
//Build up push notification configs to use with push notification provider.
try {
PlatformConfiguration deviceTypeConfig = deviceManager.getConfiguration();
if (deviceTypeConfig != null) {
@ -161,14 +162,17 @@ public class DeviceTypeManagerService implements DeviceManagementService {
if (!configuration.isEmpty()) {
Map<String, String> properties = this.getConfigProperty(configuration);
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")) {
notifierType = NOTIFIER_TYPE_LOCAL;
enabledNotifierType = NOTIFIER_TYPE_LOCAL;
}
pushNotificationConfig = new PushNotificationConfig(notifierType, isScheduled, properties);
pushNotificationConfig = new PushNotificationConfig(enabledNotifierType, isScheduled, properties);
}
}
} 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
public PushNotificationConfig getPushNotificationConfig() {
//We only need to update push notification configs if this device type uses registry based configs.
if (isRegistryBasedConfigs) {
refreshPlatformConfigurations();
}

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

@ -74,13 +74,13 @@ if (!user) {
} else {
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()){
log.error("Request Payload Is Empty");
// HTTP status code 400 refers to - Bad request.
result = 400;
}else{
} else{
deviceType = request.getContent()["deviceType"];
queryString = "?deviceName=" + request.getContent()["deviceName"] +"&deviceType="+
request.getContent()["deviceType"]+"&sketchType="+request.getContent()["sketchType"];

@ -160,7 +160,7 @@
<thead>
<tr class="sort-row">
<th class="no-sort"></th>
<th class="no-sort"></th>
<th>By Device Name</th>
<th>By Owner</th>
<th>By Status</th>
<th>By Platform</th>
@ -169,7 +169,7 @@
</tr>
<tr class="filter-row filter-box">
<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 Status" class="select-filter data-status"></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();
} else if (input.data("param-type") == "form") {
var prefix = (uriencodedFormStr == "") ? "" : "&";
if (input.attr("type") == "checkbox" || input.attr("type") == "radio"){
if (isItemSelected == undefined){
if (input.attr("type") == "checkbox" || input.attr("type") == "radio") {
if (isItemSelected == undefined) {
isItemSelected = false;
}
if (input.is(':checked')){
if (input.is(':checked')) {
isItemSelected = true;
uriencodedFormStr += prefix + input.attr("name") + "=" + input.val();
}
}else{
} else {
uriencodedFormStr += prefix + input.attr("id") + "=" + input.val();
}
}
});
if (isItemSelected === false){
if (isItemSelected === false) {
title.html("Please Select One Option");
statusIcon.attr("class", defaultStatusClasses + " fw-error");
$(modalPopupContent).html(content.html());

@ -43,7 +43,7 @@
<i class="fw fw-mobile fw-3x"></i>
</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">
<span class="fw-stack">
<i class="fw fw-circle-outline fw-stack-2x"></i>

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

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

@ -17,8 +17,8 @@
}}
{{#zone "footer"}}
<p>
<span class="hidden-xs">WSO2 IoT Server{{#unless isCloud}} 3.1.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="hidden-xs">WSO2 IoT Server{{#unless isCloud}} 3.2.0{{/unless}}</span>
<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.
</p>
{{/zone}}

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

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

@ -17,8 +17,8 @@
}}
{{#zone "footer"}}
<p>
<span class="hidden-xs">WSO2 IoT Server 3.1.0</span>
<span class="visible-xs-inline">WSO2 IoT Server 3.1.0</span> | © <script>document.write(new Date().getFullYear());</script>,
<span class="hidden-xs">WSO2 IoT Server 3.2.0</span>
<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.
</p>
{{/zone}}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -22,14 +22,14 @@
<parent>
<groupId>org.wso2.carbon.devicemgt</groupId>
<artifactId>apimgt-extensions-feature</artifactId>
<version>3.0.232-SNAPSHOT</version>
<version>3.0.243-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.wso2.carbon.apimgt.handler.server.feature</artifactId>
<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>
<url>http://wso2.org</url>
<description>This feature contains the handler for the api authentications

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -52,6 +52,14 @@ CREATE TABLE IF NOT EXISTS DM_COMMAND_OPERATION_ARCH (
PRIMARY KEY (OPERATION_ID)
)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 (
OPERATION_ID INTEGER NOT NULL,
ENABLED INTEGER NOT NULL DEFAULT 0,

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

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

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

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

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

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

Loading…
Cancel
Save