diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml index adf03b22c..505c051ef 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml @@ -72,7 +72,7 @@ - + @@ -168,12 +168,6 @@ commons-httpclient provided - - io.swagger - swagger-annotations - provided - - com.google.code.gson gson @@ -188,5 +182,28 @@ org.wso2.carbon.analytics.api provided + + io.swagger + swagger-annotations + + + io.swagger + swagger-core + + + org.slf4j + slf4j-api + + + + + io.swagger + swagger-jaxrs + + + javax.servlet + servlet-api + provided + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java index a46f49259..a5b8167f8 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java @@ -28,6 +28,8 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; +@Api(value = "Android Device Management API", + description = "This carries all the resources related to Android device management functionalities") @Path("/devices") @Api(value = "DeviceManagement", description = "Device management related APIs that is used by mainly by the Android " + "agent.") @@ -40,15 +42,18 @@ public interface DeviceManagementService { @ApiOperation( consumes = MediaType.APPLICATION_JSON, httpMethod = "PUT", - value = "Updating an ApplicationList", - notes = "Update application list in server side." + value = "Update the application list of a device" ) @ApiResponses(value = { - @ApiResponse(code = 202, message = "Device information has modified successfully"), - @ApiResponse(code = 500, message = "Error occurred while modifying the application list") + @ApiResponse(code = 200, message = "OK. \n " + + "Application list of the device has successfully been updated"), + @ApiResponse(code = 204, message = "No Content. \n Application list of the device has not been updated"), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Sever error occurred while modifying the application list") }) - Response updateApplicationList(@ApiParam(name = "id", value = "deviceIdentifier") @PathParam("id") String id, - @ApiParam(name = "applications", value = "updatable applications") + Response updateApplicationList(@ApiParam(name = "id", value = "Device Identifier") @PathParam("id") String id, + @ApiParam(name = "applications", value = "List of applications that need to be " + + "persisted against the device") List applications); @GET @@ -57,17 +62,34 @@ public interface DeviceManagementService { consumes = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON, httpMethod = "PUT", - value = "Getting Pending Android Device Operations", + value = "Get the operation list pending for the device", responseContainer = "List", notes = "The Android agent communicates with the server to get the operations that are queued up " + - "at the server end for a given device using this REST API", + "at the server end for a given device using via this particular resource", response = Operation.class) @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of pending operations"), - @ApiResponse(code = 500, message = "Issue in retrieving operation management service instance") + @ApiResponse(code = 200, message = "OK. \n List of pending operations of the device is returned", + responseHeaders = { + @ResponseHeader(name = "Content-Type", description = "The content type of the body"), + @ResponseHeader(name = "ETag", description = "Entity Tag of the response resource.\n" + + "Used by caches, or in conditional requests."), + @ResponseHeader(name = "Last-Modified", + description = "Date and time the resource has been modified the last time.\n" + + "Used by caches, or in conditional requests.")}), + @ApiResponse(code = 303, message = "See Other. \n " + + "Source can be retrieved from the URL specified at the Location header.", + responseHeaders = { + @ResponseHeader(name = "Location", description = "The Source URL of the document.")}), + @ApiResponse(code = 304, 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."), + @ApiResponse(code = 404, message = "Not Found. \n Requested device not found."), + @ApiResponse(code = 406, message = "Not Acceptable. \n The requested media type is not supported."), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Server error occurred while retrieving the pending operation list of the device.") }) Response getPendingOperations( - @ApiParam(name = "id", value = "DeviceIdentifier") @PathParam("id") String id, + @ApiParam(name = "id", value = "Device Identifier") @PathParam("id") String id, @ApiParam(name = "resultOperations", value = "Device Operation Status") List resultOperations); @@ -75,15 +97,20 @@ public interface DeviceManagementService { @ApiOperation( consumes = MediaType.APPLICATION_JSON, httpMethod = "POST", - value = "Registering an Android Device", + value = "Register an Android Device", notes = "When carrying out device registration via an Android device, you need to initially install" + " an Android Agent on the device, before being able to register the device with WSO2 EMM. Instead," + " you can use this REST API to register an Android device with WSO2 EMM, without having to install" + " an Android Agent on the respective device" ) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Device enrollment succeeded"), - @ApiResponse(code = 500, message = "Device enrollment failed"), + @ApiResponse(code = 201, message = "Created. \n Device has successfully been enrolled. Location header " + + "contains URL of newly enrolled device", + responseHeaders = { + @ResponseHeader(name = "Location", description = "URL of the device enrolled")}), + @ApiResponse(code = 400, message = "Bad Request. \n Invalid request or validation error."), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Server error occurred while enrolling the device."), }) Response enrollDevice(@ApiParam(name = "device", value = "Device Information to be enroll") Device device); @@ -95,10 +122,19 @@ public interface DeviceManagementService { notes = "Use this REST API to retrieve the registration status of an Android device" ) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Device has already enrolled"), - @ApiResponse(code = 404, message = "Device not found") + @ApiResponse(code = 200, message = "Device has already enrolled", + responseHeaders = { + @ResponseHeader(name = "Content-Type", description = "The content type of the body"), + @ResponseHeader(name = "ETag", description = "Entity Tag of the response resource.\n" + + "Used by caches, or in conditional requests."), + @ResponseHeader(name = "Last-Modified", + description = "Date and time the resource has been modified the last time.\n" + + "Used by caches, or in conditional requests.")}), + @ApiResponse(code = 404, message = "Not Found. \n Requested device not found."), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Server error occurred while retrieving the enrollment status of the device."), }) - Response isEnrolled(@ApiParam(name = "id", value = "DeviceIdentifier") @PathParam("id") String id); + Response isEnrolled(@ApiParam(name = "id", value = "Device Identifier") @PathParam("id") String id); @PUT @Path("/{id}") @@ -108,10 +144,22 @@ public interface DeviceManagementService { notes = "Use this REST API to update the registration details of an Android device" ) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Device enrollment has updated successfully"), - @ApiResponse(code = 404, message = "Device not found for enrollment") + @ApiResponse(code = 200, message = "OK. \n Device enrollment has been updated successfully", + responseHeaders = { + @ResponseHeader(name = "Location", description = "The URL of the updated device."), + @ResponseHeader(name = "Content-Type", description = "The content type of the body"), + @ResponseHeader(name = "ETag", description = "Entity Tag of the response resource.\n" + + "Used by caches, or in conditional requests."), + @ResponseHeader(name = "Last-Modified", + description = "Date and time the resource has been modified the last time.\n" + + "Used by caches, or in conditional requests.")}), + @ApiResponse(code = 204, message = "No Content. \n Enrollment of the device has not been updated"), + @ApiResponse(code = 400, message = "Bad Request. \n Invalid request or validation error."), + @ApiResponse(code = 404, message = "Not Found. \n Resource to be deleted does not exist."), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Server error occurred while modifying the current enrollment of the device.") }) - Response modifyEnrollment(@ApiParam(name = "id", value = "DeviceIdentifier") @PathParam("id") String id, + Response modifyEnrollment(@ApiParam(name = "id", value = "Device Identifier") @PathParam("id") String id, @ApiParam(name = "device", value = "Device information to be modify") Device device); @DELETE @@ -119,12 +167,14 @@ public interface DeviceManagementService { @ApiOperation( httpMethod = "DELETE", value = "Un-registering an Android Device", - notes = "Use this REST API to unregister a specific Android device" + notes = "Use this REST API to un-register a specific Android device" ) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Device has removed successfully"), - @ApiResponse(code = 404, message = "Device not found") + @ApiResponse(code = 200, message = "OK. \n Device has successfully been dis-enrolled"), + @ApiResponse(code = 404, message = "Not Found. \n Device requested to be dis-enrolled does not exist."), + @ApiResponse(code = 500, message = "Internal Server Error. \n " + + "Server error occurred while dis-enrolling the the device."), }) - Response disEnrollDevice(@ApiParam(name = "id", value = "DeviceIdentifier") @PathParam("id") String id); + Response disEnrollDevice(@ApiParam(name = "id", value = "Device Identifier") @PathParam("id") String id); } diff --git a/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/pom.xml b/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/pom.xml index 55d061f83..c13fa8396 100644 --- a/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/pom.xml +++ b/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/pom.xml @@ -118,7 +118,7 @@ true ${project.build.directory}/maven-shared-archive-resources/webapps/ - mdm-android-agent.war + api#device-mgt#android#v2.1.war diff --git a/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/src/main/resources/p2.inf b/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/src/main/resources/p2.inf index 349c09785..04b5ce97f 100644 --- a/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/src/main/resources/p2.inf +++ b/features/mobile-plugins-feature/android-plugin-feature/org.wso2.carbon.device.mgt.mobile.android.feature/src/main/resources/p2.inf @@ -1,5 +1,5 @@ instructions.configure = \ -org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.android_${feature.version}/webapps/mdm-android-agent.war,target:${installFolder}/../../deployment/server/webapps/mdm-android-agent.war,overwrite:true);\ +org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.android_${feature.version}/webapps/api#device-mgt#android#v2.1.war,target:${installFolder}/../../deployment/server/webapps/api#device-mgt#android#v2.1.war,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.android_${feature.version}/jaggeryapps/,target:${installFolder}/../../deployment/server/jaggeryapps/,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.android_${feature.version}/conf/mobile-config.xml,target:${installFolder}/../../conf/mobile-config.xml,overwrite:true);\ org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/org.wso2.carbon.device.mgt.mobile.android_${feature.version}/dbscripts/plugins/,target:${installFolder}/../../../dbscripts/cdm/plugins/android,overwrite:true);\ diff --git a/pom.xml b/pom.xml index 458950867..df3853bec 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,28 @@ swagger-annotations ${swagger.version} + + io.swagger + swagger-core + ${swagger.version} + + + org.slf4j + slf4j-api + + + + + io.swagger + swagger-jaxrs + ${swagger.version} + + + javax.servlet + servlet-api + ${servlet-api.version} + provided + @@ -1180,6 +1202,8 @@ github-scm + + 2.5