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/devicemgt/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/devicemgt/DeviceManagementService.java
index b7036dd083..f1b518c45c 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/devicemgt/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/devicemgt/DeviceManagementService.java
@@ -142,6 +142,7 @@ public interface DeviceManagementService {
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Licence agreement"),
@ApiResponse(code = 500, message = "Error occurred while retrieving the license configured for Android " +
- "device enrolment")})
+ "device enrolment")
+ })
String getLicense() throws AndroidAgentException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
index f5f7dcabdd..a6a71d4bca 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/pom.xml
@@ -305,5 +305,10 @@
json
2.0.0.wso2v1
+
+ io.swagger
+ swagger-annotations
+ provided
+
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/CacheEntry.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/CacheEntry.java
index 1cbb8d6400..d8ed5d476d 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/CacheEntry.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/CacheEntry.java
@@ -18,12 +18,21 @@
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Class for java CacheEntry
*/
+@ApiModel(value = "CacheEntry",
+ description = "This class carries all information related to token cache")
public class CacheEntry {
+
+ @ApiModelProperty(name = "deviceID", value = "Windows deviceIdentifier", required = true)
private String deviceID;
+ @ApiModelProperty(name = "username", value = "Enrolled User", required = true)
private String username;
+ @ApiModelProperty(name = "ownership", value = "Enrollment ownership(BYOD/COPE)", required = true)
private String ownership;
public String getOwnership() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/Token.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/Token.java
index 4e941bfa1c..f55124e6ec 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/Token.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/Token.java
@@ -18,10 +18,17 @@
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Class for challenge token
*/
+@ApiModel(value = "Token", description = "Details related device encryption.")
public class Token {
+
+ @ApiModelProperty(name = "challengeToken",
+ value = "Enrollment Binary security token", required = true)
private String challengeToken;
public String getChallengeToken() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/WindowsPluginProperties.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/WindowsPluginProperties.java
index 490670fdcc..ba3fac6e35 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/WindowsPluginProperties.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/beans/WindowsPluginProperties.java
@@ -18,17 +18,28 @@
package org.wso2.carbon.mdm.mobileservices.windows.common.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Bean class for storing Windows plugin properties after reading the property file.
*/
+@ApiModel(value = "WindowsPluginProperties", description = "Windows plugin related properties.")
public class WindowsPluginProperties {
+ @ApiModelProperty(name = "keyStorePassword", value = "Password of the keyStore.", required = true)
private String keyStorePassword;
+ @ApiModelProperty(name = "privateKeyPassword", value = "password of the privateKey.", required = true)
private String privateKeyPassword;
+ @ApiModelProperty(name = "commonName", value = "Common Name of the certificate.", required = true)
private String commonName;
+ @ApiModelProperty(name = "authPolicy", value = "Windows enrollment authentication policy(Federated/on-premise).", required = true)
private String authPolicy;
+ @ApiModelProperty(name = "domain", value = "Domain of the given Email.", required = true)
private String domain;
+ @ApiModelProperty(name = "notBeforeDays", value = "Number of days to before the certificate expire.", required = true)
private int notBeforeDays;
+ @ApiModelProperty(name = "notAfterDays", value = "Number of days to after the certificate has been expired.", required = true)
private int notAfterDays;
public String getKeyStorePassword() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/AuthenticationInfo.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/AuthenticationInfo.java
index 809cb4be86..91a5ba3b5f 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/AuthenticationInfo.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/AuthenticationInfo.java
@@ -18,13 +18,23 @@
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* DTO class to hold the information of authenticated user.
*/
+@ApiModel(value = "ApplicationInstallation",
+ description = "This class carries all information related to install application")
+
public class AuthenticationInfo {
+ @ApiModelProperty(name = "message", value = "Authentication info message.", required = true)
private String message;
+ @ApiModelProperty(name = "username", value = "Username of the enrolled user.", required = true)
private String username;
+ @ApiModelProperty(name = "tenantDomain", value = "Enrolled user's tenant domain.", required = true)
private String tenantDomain;
+ @ApiModelProperty(name = "tenantId", value = "Enrolled user's tenant ID)", required = true)
private int tenantId = -1;
public String getUsername() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/DeviceIDHolder.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/DeviceIDHolder.java
index 1504a459e5..a7e6fa5328 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/DeviceIDHolder.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/common/util/DeviceIDHolder.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.common.util;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
import java.util.List;
@@ -25,9 +27,12 @@ import java.util.List;
/**
* Class for holding device ids.
*/
+@ApiModel(value = "DeviceIDHolder", description = "This class carries all information related to DeviceIDs")
public class DeviceIDHolder {
+ @ApiModelProperty(name = "errorDeviceIdList", value = "Error occurred DeviceIds.)", required = true)
private List errorDeviceIdList;
+ @ApiModelProperty(name = "validDeviceIDList", value = "Valid DeviceIDs.)", required = true)
private List validDeviceIDList;
public List getErrorDeviceIdList() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AddTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AddTag.java
index 4ef83469dc..a2e45ce3cc 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AddTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AddTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,8 +30,11 @@ import java.util.List;
/**
* Configurations that needs to be added on the device.
*/
+@ApiModel(value = "AddTag", description = "This class carries all information related to Syncml AddTag.")
public class AddTag {
+ @ApiModelProperty(name = "commandId", value = "CommandID of the AddTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "items", value = "List of items of the AddTag.", required = true)
List- items;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Alert.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Alert.java
index c37c74e999..40a9aace18 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Alert.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Alert.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -25,9 +27,12 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Inform an event occurred from device to server.
*/
+@ApiModel(value = "Alert",
+ description = "This class carries all information related to Syncml alert.")
public class Alert {
-
+ @ApiModelProperty(name = "commandId", value = "CommandId of The Syncml Alert.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "data", value = "Data of the AlertTag.", required = true)
String data;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AtomicTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AtomicTag.java
index e189685d91..29d2d96723 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AtomicTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/AtomicTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,9 +30,13 @@ import java.util.List;
/**
* Wrapper for other SyncML elements.
*/
+@ApiModel(value = "AtomicTag", description = "This class carries all information related to syncml Engine Atomic tag")
public class AtomicTag {
+ @ApiModelProperty(name = "commandId", value = "Syncml Atomic tag CommandId", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "adds", value = "List of addtags", required = true)
List adds;
+ @ApiModelProperty(name = "replaces", value = "List of replace tags", required = true)
List replaces;
public List getReplaces() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ChallengeTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ChallengeTag.java
index a7750461b7..2985caf840 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ChallengeTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ChallengeTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -25,7 +27,10 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Challenge data pass through the device and Device Management server for the security purpose.
*/
+@ApiModel(value = "ChallengeTag",
+ description = "This class carries all information related to install application")
public class ChallengeTag {
+ @ApiModelProperty(name = "meta", value = "Syncml MetaTag", required = true)
MetaTag meta;
public MetaTag getMeta() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Credential.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Credential.java
index ea1bf35ff2..f12dc31114 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Credential.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Credential.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -25,8 +27,12 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Credentials passed between the device and the server for security purposes.
*/
+@ApiModel(value = "Credential",
+ description = "This class carries all information related to syncml credentials")
public class Credential {
+ @ApiModelProperty(name = "meta", value = "Syncml credential's MetaTag reference.)", required = true)
MetaTag meta;
+ @ApiModelProperty(name = "data", value = "Data of the Credential Tag.)", required = true)
String data;
public MetaTag getMeta() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/DeleteTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/DeleteTag.java
index baeeec7225..f357d0a3e7 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/DeleteTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/DeleteTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,8 +30,12 @@ import java.util.List;
/**
* Configurations that need to be delete on Device.
*/
+@ApiModel(value = "DeleteTag",
+ description = "This class carries all information related to Syncml DeleteTag.")
public class DeleteTag {
+ @ApiModelProperty(name = "commandId", value = "CommandId of the Syncl DeleteTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "items", value = "List of items of the syncml DeleteTag. ", required = true)
List
- items;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ExecuteTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ExecuteTag.java
index 11d2e92e80..f8e10e5c85 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ExecuteTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/ExecuteTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,8 +30,12 @@ import java.util.List;
/**
* Commands that needs to be executed on the device.
*/
+@ApiModel(value = "ExecuteTag",
+ description = "This class carries all information related to Syncml ExecuteTag.")
public class ExecuteTag {
+ @ApiModelProperty(name = "type", value = "CommandId of the syncml ExecuteTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "type", value = "List of items of the Syncml ExecuteTag.", required = true)
List
- items;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Get.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Get.java
index 9c8f43e050..57389415cb 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Get.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Get.java
@@ -18,9 +18,11 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
import java.util.Iterator;
import java.util.List;
@@ -28,8 +30,12 @@ import java.util.List;
/**
* Data that needs to be retrieved from the device.
*/
+@ApiModel(value = "Get",
+ description = "This class carries all information related to syncml GetTag.")
public class Get {
+ @ApiModelProperty(name = "commandId", value = "CommandId of the syncml GetTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "items", value = "List of items of the Syncml GetTag.", required = true)
List
- items;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Item.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Item.java
index d519850c7d..5956403329 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Item.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Item.java
@@ -18,18 +18,25 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Represents an items that should be retrieved from the device or a command.
*/
+@ApiModel(value = "Item",
+ description = "This class carries all information related to Syncml Item.")
public class Item {
-
+ @ApiModelProperty(name = "target", value = "Target reference value of the Syncml Message(ex:Device).", required = true)
Target target;
+ @ApiModelProperty(name = "source", value = "Source reference of the syncml message.(Ex:EMM Server).", required = true)
Source source;
+ @ApiModelProperty(name = "data", value = "Content of the syncml message.", required = true)
String data;
+ @ApiModelProperty(name = "meta", value = "Meta data of the syncml messsage.", required = true)
MetaTag meta;
public MetaTag getMeta() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/MetaTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/MetaTag.java
index cd8c2a074b..b6b1e145ee 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/MetaTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/MetaTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -26,10 +28,13 @@ import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* MetaTag data related to credentials.
*/
+@ApiModel(value = "MetaTag", description = "This class carries all information related to MetaTag")
public class MetaTag {
-
+ @ApiModelProperty(name = "format", value = "MetaTag format.)", required = true)
String format;
+ @ApiModelProperty(name = "type", value = "MetaTag type)", required = true)
String type;
+ @ApiModelProperty(name = "nextNonce", value = "Syncml Nextnonce)", required = true)
String nextNonce;
public String getNextNonce() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Replace.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Replace.java
index a760bbbbc8..3469a590c3 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Replace.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Replace.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,8 +30,12 @@ import java.util.List;
/**
* Commands sent from the device.
*/
+@ApiModel(value = "Replace",
+ description = "This class carries all information related to Syncml ReplaceTag.")
public class Replace {
+ @ApiModelProperty(name = "commandId", value = "CommandId of the syncml ReplaceTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "items", value = "List of items of the syncml ReplaceTag.", required = true)
List
- items;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Results.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Results.java
index ca9175bb7b..6c04067c3e 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Results.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Results.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,10 +30,16 @@ import java.util.List;
/**
* Results sent for the requests made to the device.
*/
+@ApiModel(value = "Results",
+ description = "This class carries all information related to Syncml Item.")
public class Results {
+ @ApiModelProperty(name = "commandId", value = "CommandID of the Syncml Results Tag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "messageReference", value = "MessageReference of the Syncml Results Tag.", required = true)
int messageReference = -1;
+ @ApiModelProperty(name = "commandReference", value = "CommandReference of the Syncml Results Tag.", required = true)
int commandReference = -1;
+ @ApiModelProperty(name = "item", value = "List of Items in Syncml ResultTag.", required = true)
List
- item;
public int getCommandId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SequenceTag.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SequenceTag.java
index 15bfabfb55..47cc6501ad 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SequenceTag.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SequenceTag.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,13 +30,20 @@ import java.util.List;
/**
* Sequence data that use to execute tag list
*/
+@ApiModel(value = "SequenceTag",
+ description = "This class carries all information related to Syncml SequenceTag.")
public class SequenceTag {
-
+ @ApiModelProperty(name = "commandId", value = "CommandId of the Syncml SequenceTag", required = true)
int commandId;
+ @ApiModelProperty(name = "exec", value = "ExcecuteTag sequence of the Syncml SequenceTag", required = true)
ExecuteTag exec;
+ @ApiModelProperty(name = "get", value = "GetTag of the syncml SequenceTag.", required = true)
Get get;
+ @ApiModelProperty(name = "deleteTag", value = "DeleteTag of the syncml SequenceTag.", required = true)
DeleteTag deleteTag;
+ @ApiModelProperty(name = "atomicTag", value = "AtomicTag sequence of the syncml SequenceTag.", required = true)
AtomicTag atomicTag;
+ @ApiModelProperty(name = "replaces", value = "ReplaceTag of the syncml SequenceTag.", required = true)
List replaces;
public DeleteTag getDeleteTag() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Source.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Source.java
index dd16b157e2..b4d866ad1e 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Source.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Source.java
@@ -18,16 +18,21 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Source details of syncml header's.
*/
+@ApiModel(value = "Source",
+ description = "This class carries all information related to Syncml source.")
public class Source {
-
+ @ApiModelProperty(name = "LocURI", value = "Location URI.(Source Location:Device)", required = true)
private String LocURI;
+ @ApiModelProperty(name = "LocName", value = "Name of the location", required = true)
private String LocName;
public String getLocURI() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Status.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Status.java
index 44f2bded77..4a595cf0df 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Status.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Status.java
@@ -18,20 +18,31 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Status of a previously sent message to device;
*/
+@ApiModel(value = "Status",
+ description = "This class carries all information related to Syncml Device statuses.")
public class Status {
+ @ApiModelProperty(name = "commandId", value = "CommandId of the Syncml StatusTag.", required = true)
int commandId = -1;
+ @ApiModelProperty(name = "messageReference", value = "Message referenceId.", required = true)
int messageReference = -1;
+ @ApiModelProperty(name = "commandReference", value = "Command referenceId.", required = true)
int commandReference = -1;
+ @ApiModelProperty(name = "command", value = "Command String.", required = true)
String command;
+ @ApiModelProperty(name = "targetReference", value = "Target reference of the status message.", required = true)
String targetReference;
+ @ApiModelProperty(name = "data", value = "Status data of the message.(ex:200,404,500...)", required = true)
String data;
+ @ApiModelProperty(name = "challenge", value = "Challenge value.", required = true)
ChallengeTag challenge;
public Status(int commandId, int messageReference, int commandReference, String command,
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlBody.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlBody.java
index d11f1ea9c7..8710ff7432 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlBody.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlBody.java
@@ -18,6 +18,8 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
@@ -28,14 +30,23 @@ import java.util.List;
/**
* Represents the body details of a syncml.
*/
+@ApiModel(value = "SyncmlBody", description = "This class carries all information related to SyncmlBody.")
public class SyncmlBody {
+ @ApiModelProperty(name = "getCommands", value = "Get value of the syncmlBody.", required = true)
Get getCommands;
+ @ApiModelProperty(name = "exec", value = "List of executeTags in syncmlBody.", required = true)
List exec;
+ @ApiModelProperty(name = "status", value = "List of statusTags in syncmlBody.", required = true)
List status;
+ @ApiModelProperty(name = "alert", value = "Alert tag in syncmlBody.", required = true)
Alert alert;
+ @ApiModelProperty(name = "replace", value = "replace tag in syncmlBody.", required = true)
Replace replace;
+ @ApiModelProperty(name = "results", value = "Results tag in syncmlBody.", required = true)
Results results;
+ @ApiModelProperty(name = "sequence", value = "Sequence tag in syncmlBody.", required = true)
SequenceTag sequence;
+ @ApiModelProperty(name = "atomicTag", value = "Atomic tag in syncmlBody.", required = true)
AtomicTag atomicTag;
public AtomicTag getAtomicTag() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlDocument.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlDocument.java
index 368cd345c1..fa63a27a2f 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlDocument.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlDocument.java
@@ -18,14 +18,19 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Represents a base format of a syncml document
*/
+@ApiModel(value = "SyncmlDocument", description = "This class carries all information related to SyncmlDocument.")
public class SyncmlDocument {
+ @ApiModelProperty(name = "header", value = "Header of the syncmlDocument.", required = true)
SyncmlHeader header;
+ @ApiModelProperty(name = "body", value = "Body of the SyncmlDocument.", required = true)
SyncmlBody body;
public SyncmlHeader getHeader() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlHeader.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlHeader.java
index e884b934a4..b135837a72 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlHeader.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/SyncmlHeader.java
@@ -18,19 +18,28 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Represents the header details of a syncml.
*/
+@ApiModel(value = "SyncmlHeader", description = "This class carries all information related to SyncmlHeader.")
public class SyncmlHeader {
+ @ApiModelProperty(name = "sessionId", value = "SessionId of the syncml Message.", required = true)
private int sessionId = -1;
+ @ApiModelProperty(name = "MsgID", value = "MessageId of the syncml Session.", required = true)
private int MsgID = -1;
+ @ApiModelProperty(name = "target", value = "Target of the syncml Message.(Ex:Device/Server.)", required = true)
private Target target;
+ @ApiModelProperty(name = "source", value = "Source of the Syncml Message.(Ex:Server/Device.)", required = true)
private Source source;
+ @ApiModelProperty(name = "credential", value = "Credentials of the Syncml header.", required = true)
private Credential credential;
+ @ApiModelProperty(name = "hexadecimalSessionId", value = "HexaDecimal SessionId of the syncmlHeader.", required = true)
private String hexadecimalSessionId;
public String getHexadecimalSessionId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Target.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Target.java
index 2ce40aae93..9cb980be9e 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Target.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/operations/Target.java
@@ -18,16 +18,20 @@
package org.wso2.carbon.mdm.mobileservices.windows.operations;
-import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.wso2.carbon.mdm.mobileservices.windows.operations.util.Constants;
/**
* Target details of syncml header's.
*/
+@ApiModel(value = "Target", description = "This class carries all information related to Syncml Target.")
public class Target {
-
+ @ApiModelProperty(name = "LocURI", value = "Location URI of the target.", required = true)
private String LocURI;
+ @ApiModelProperty(name = "LocName", value = "Location Name of the target.", required = true)
private String LocName;
public String getLocURI() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/Operations.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/Operations.java
index 61acdeacd0..e868265f4b 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/Operations.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/Operations.java
@@ -18,6 +18,10 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
import javax.ws.rs.*;
@@ -28,6 +32,8 @@ import java.util.List;
/**
* Interface for Admin operations persisting. This interface accepts operations added via UI.
*/
+
+@Api(value = "Operations", description = "Windows Device Management REST-API implementation.")
@Path("/operation")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@@ -36,22 +42,72 @@ public interface Operations {
@POST
@Path("/devicelock")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Adding a Device Lock on Windows Devices via the REST API",
+ notes = "Adding a Device lock operation to the windows device"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response lock(@HeaderParam("Accept") String headerParam, List deviceids) throws WindowsDeviceEnrolmentException;
@POST
@Path("/devicedisenroll")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Disenrolling Windows Devices via the REST API",
+ notes = "Enforcing Disenrolling operation to the windows device"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response disenroll(@HeaderParam("Accept") String headerParam, List deviceids) throws WindowsDeviceEnrolmentException;
@POST
@Path("/devicewipe")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Wiping Information off Windows Devices via the REST API",
+ notes = "Enforce wipe operation to the windows device"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response wipe(@HeaderParam("Accept") String headerParam, List deviceids) throws WindowsDeviceEnrolmentException;
@POST
@Path("/devicering")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Ringing Windows Devices via the Rest API",
+ notes = "Adding a Device ring operation to the windows device."
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response ring(@HeaderParam("Accept") String headerParam, List deviceids) throws WindowsDeviceEnrolmentException;
@POST
@Path("/lockreset")
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Resetting the Lock of Windows Devices via the REST API",
+ notes = "Adding a Device lock re-test operation to the windows device."
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response lockReset(@HeaderParam("Accept") String acceptHeader, List deviceids)
throws WindowsDeviceEnrolmentException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Device.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Device.java
index be30119a8f..e8b347fadb 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Device.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Device.java
@@ -18,11 +18,15 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Class for get device IDS.
*/
+@ApiModel(value = "Device", description = "This class carries all information related to Device.")
public class Device {
-
+ @ApiModelProperty(name = "id", value = "DeviceIDs.", required = true)
private String id;
public String getID() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Disenrollment.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Disenrollment.java
deleted file mode 100644
index ae6ab54efe..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/Disenrollment.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
-
-import java.io.Serializable;
-
-/**
- * Class for dis-enrollment operation
- */
-public class Disenrollment implements Serializable {
-
- private boolean enabled;
-
- public boolean isEnabled() {
- return enabled;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
-
- private boolean isEnable() {
- return enabled;
- }
-
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationRequest.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationRequest.java
deleted file mode 100644
index cffba11a71..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationRequest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
-
-import org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans.BasicOperation;
-
-import java.util.List;
-
-/**
- * Class for set basic operations.
- */
-public class OperationRequest {
-
- private List deviceList;
- private BasicOperation basicOperation;
-
- public BasicOperation getBasicOperation() {
- return basicOperation;
- }
-
- public void setBasicOperation(BasicOperation basicOperation) {
- this.basicOperation = basicOperation;
- }
-
- public List getDeviceList() {
- return deviceList;
- }
-
- public void setDeviceList(List deviceList) {
- this.deviceList = deviceList;
- }
-
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationResponse.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationResponse.java
deleted file mode 100644
index fd5b3dccd2..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/OperationResponse.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
-
-/**
- * This bean class is for credentials coming from wab page at federated authentication step.
- */
-public class OperationResponse {
-
- private String errorCode;
- private String statusCode;
-
- public OperationResponse() {
-
- }
-
- public String getErrorCode() {
- return errorCode;
- }
-
- public String getStatusCode() {
- return statusCode;
- }
-
- public void setErrorCode(String errorCode) {
- this.errorCode = errorCode;
- }
-
- public void setStatusCode(String statusCode) {
- this.statusCode = statusCode;
- }
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/StorageEncryption.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/StorageEncryption.java
deleted file mode 100644
index 2fec260c16..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/StorageEncryption.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans;
-
-import java.io.Serializable;
-
-/**
- * This class represents the information of encrypt operation.
- */
-public class StorageEncryption implements Serializable {
- private boolean encrypted;
-
- public boolean isEncrypted() {
- return encrypted;
- }
-
- public void setEncrypted(boolean encrypted) {
- this.encrypted = encrypted;
- }
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/DisenrollmentBeanWrapper.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/DisenrollmentBeanWrapper.java
deleted file mode 100644
index 777d642d2f..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/DisenrollmentBeanWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.wrapper;
-
-import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.Disenrollment;
-
-import java.util.List;
-
-/**
- * Class is used to wrap dis-enrollment bean with the device
- */
-public class DisenrollmentBeanWrapper {
-
- private Disenrollment operation;
-
- private List deviceId;
-
- public Disenrollment getOperation() {
- return operation;
- }
-
- public void setOperation(Disenrollment operation) {
- this.operation = operation;
- }
-
- public List getDeviceId() {
- return deviceId;
- }
-
- public void setDeviceId(List deviceId) {
- this.deviceId = deviceId;
- }
-
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/EncryptBeanWrapper.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/EncryptBeanWrapper.java
deleted file mode 100644
index d6b5299bb2..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/beans/wrapper/EncryptBeanWrapper.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.wrapper;
-
-import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.StorageEncryption;
-
-import java.util.List;
-
-/**
- * This class is used to wrap the Encrypt bean with devices.
- */
-public class EncryptBeanWrapper {
-
- private StorageEncryption operation;
- private List deviceIDs;
-
- public StorageEncryption getOperation() {
- return operation;
- }
-
- public void setOperation(StorageEncryption operation) {
- this.operation = operation;
- }
-
- public List getDeviceIDs() {
- return deviceIDs;
- }
-
- public void setDeviceIDs(List deviceIDs) {
- this.deviceIDs = deviceIDs;
- }
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/util/OperationStore.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/util/OperationStore.java
deleted file mode 100644
index 1fb34c6076..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/adminoperations/util/OperationStore.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.util;
-
-import com.google.gson.Gson;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
-import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManagementException;
-import org.wso2.carbon.device.mgt.core.operation.mgt.ConfigOperation;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-import org.wso2.carbon.mdm.mobileservices.windows.common.SyncmlCommandType;
-import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
-import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.Device;
-import org.wso2.carbon.mdm.mobileservices.windows.services.adminoperations.beans.OperationRequest;
-import org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans.Wifi;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class OperationStore {
-
- private static Log log = LogFactory.getLog(OperationStore.class);
-
- public static boolean storeOperation(OperationRequest operationRequest, Operation.Type type,
- String commandType) throws
- WindowsDeviceEnrolmentException {
-
- List devices = operationRequest.getDeviceList();
- List deviceIdentifiers = new ArrayList();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
-
- Operation operation = transformBasicOperation(operationRequest, type, commandType);
-
- for (int i = 0; i < devices.size(); i++) {
- try {
- deviceIdentifier.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- deviceIdentifier.setId(devices.get(i).getID());
- deviceIdentifiers.add(deviceIdentifier);
- getDeviceManagementServiceProvider().getDevice(deviceIdentifier);
-
- } catch (DeviceManagementException e) {
- log.error("Cannot validate device ID: " + devices.get(i).getID());
- deviceIdentifiers.remove(i);
- }
- }
- try {
- getDeviceManagementServiceProvider().addOperation(operation, deviceIdentifiers);
- } catch (OperationManagementException e) {
- String msg = "Failure occurred while storing command operation.";
- log.error(msg);
- return false;
- }
- return true;
- }
-
- private static DeviceManagementProviderService getDeviceManagementServiceProvider() {
- DeviceManagementProviderService deviceManager;
- PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- deviceManager =
- (DeviceManagementProviderService) ctx.getOSGiService(DeviceManagementProviderService.class, null);
-
- if (deviceManager == null) {
- String msg = "Device management service is not initialized.";
- log.error(msg);
- }
- return deviceManager;
- }
-
- private static Operation transformBasicOperation(OperationRequest operationRequest, Operation.Type type,
- String commandType) throws WindowsDeviceEnrolmentException {
-
- Operation operation = new Operation();
- operation.setCode(commandType);
- operation.setType(type);
- Gson gson = new Gson();
-
- if (commandType == SyncmlCommandType.WIFI.getValue()) {
-
- operation = new ConfigOperation();
- operation.setCode(commandType);
- operation.setType(type);
-
- Wifi wifiObject = (Wifi) operationRequest.getBasicOperation();
- operation.setPayLoad(gson.toJson(wifiObject));
- } else {
- // no operation.....
- }
-
- return operation;
- }
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/BSTProvider.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/BSTProvider.java
index ac67865763..a29170b37e 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/BSTProvider.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/BSTProvider.java
@@ -18,6 +18,9 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsDeviceEnrolmentException;
import org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans.Credentials;
@@ -36,5 +39,16 @@ public interface BSTProvider {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/authentication")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Getting Binary security token via the Rest API",
+ notes = "Getting binary security token to call next certificate endpoints.",
+ response = String.class
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Internal Server error")
+ })
Response getBST(Credentials credentials) throws WindowsDeviceEnrolmentException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/beans/Credentials.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/beans/Credentials.java
index 05a05c9d63..098aef301c 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/beans/Credentials.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/authbst/beans/Credentials.java
@@ -18,6 +18,9 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.authbst.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
@@ -26,18 +29,28 @@ import javax.xml.bind.annotation.XmlRootElement;
/**
* This bean class is for credentials coming from wab page at federated authentication step.
*/
+@ApiModel(value = "Credentials", description = "This class carries all information related to Credentials.")
@XmlRootElement(name = "credentials")
@XmlAccessorType(XmlAccessType.FIELD)
public class Credentials {
+ @ApiModelProperty(name = "username", value = "User name", required = true)
@XmlElement(required = true, name = "username")
private String username;
+
+ @ApiModelProperty(name = "email", value = "Email Address of the user.", required = true)
@XmlElement(required = true, name = "email")
private String email;
+
+ @ApiModelProperty(name = "password", value = "password of the user.", required = true)
@XmlElement(required = true, name = "password")
private String password;
+
+ @ApiModelProperty(name = "ownership", value = "ownership of the user.(BYOD/COPE).", required = true)
@XmlElement(required = true, name = "ownership")
private String ownership;
+
+ @ApiModelProperty(name = "usertoken", value = "User Token.", required = true)
@XmlElement(required = true, name = "token")
private String usertoken;
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/ConfigurationMgtService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/ConfigurationMgtService.java
index 23a093eb91..f943affb06 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/ConfigurationMgtService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/ConfigurationMgtService.java
@@ -18,22 +18,16 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
-import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
-import org.wso2.carbon.device.mgt.common.license.mgt.License;
-import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
-import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
import javax.jws.WebService;
import javax.ws.rs.*;
-import javax.ws.rs.core.Response;
-import java.util.List;
+import javax.ws.rs.core.MediaType;
/**
* Windows Platform Configuration REST-API implementation.
@@ -42,9 +36,7 @@ import java.util.List;
@WebService
@Produces({"application/json", "application/xml"})
@Consumes({"application/json", "application/xml"})
-public class ConfigurationMgtService {
-
- private static Log log = LogFactory.getLog(ConfigurationMgtService.class);
+public interface ConfigurationMgtService {
/**
* Save Tenant configurations.
@@ -54,50 +46,17 @@ public class ConfigurationMgtService {
* @throws WindowsConfigurationException
*/
@POST
- public Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException {
- Message responseMsg = new Message();
- ConfigurationEntry licenseEntry = null;
- String message;
-
- try {
- configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- if (!configuration.getConfiguration().isEmpty()) {
- List configs = configuration.getConfiguration();
- for (ConfigurationEntry entry : configs) {
- if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
- License license = new License();
- license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
- license.setVersion("1.0.0");
- license.setText(entry.getValue().toString());
- WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
- MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
- licenseEntry = entry;
- }
- }
-
- if (licenseEntry != null) {
- configs.remove(licenseEntry);
- }
- configuration.setConfiguration(configs);
- WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
- Response.status(Response.Status.CREATED);
- responseMsg.setResponseMessage("Windows platform configuration saved successfully.");
- responseMsg.setResponseCode(Response.Status.CREATED.toString());
- return responseMsg;
- }
- else {
- Response.status(Response.Status.BAD_REQUEST);
- responseMsg.setResponseMessage("Windows platform configuration can not be saved.");
- responseMsg.setResponseCode(Response.Status.CREATED.toString());
- }
- } catch (DeviceManagementException e) {
- message = "Error Occurred in while configuring Windows Platform.";
- log.error(message, e);
- throw new WindowsConfigurationException(message, e);
- }
- return responseMsg;
- }
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Configuring Windows Platform Settings",
+ notes = "Configure the Windows platform settings using this REST API"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Windows platform configuration saved successfully"),
+ @ApiResponse(code = 500, message = "Internal Server Error")
+ })
+ Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException;
/**
* Retrieve Tenant configurations according to the device type.
@@ -106,34 +65,17 @@ public class ConfigurationMgtService {
* @throws WindowsConfigurationException
*/
@GET
- public TenantConfiguration getConfiguration() throws WindowsConfigurationException {
- String msg;
- TenantConfiguration tenantConfiguration = null;
- try {
- if (WindowsAPIUtils.getDeviceManagementService().
- getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS) != null) {
- tenantConfiguration = WindowsAPIUtils.getDeviceManagementService().
- getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- List configs = tenantConfiguration.getConfiguration();
- ConfigurationEntry entry = new ConfigurationEntry();
- License license = WindowsAPIUtils.getDeviceManagementService().getLicense(
- DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, PluginConstants.
- TenantConfigProperties.LANGUAGE_US);
- if(license != null) {
- entry.setContentType(PluginConstants.TenantConfigProperties.CONTENT_TYPE_TEXT);
- entry.setName(PluginConstants.TenantConfigProperties.LICENSE_KEY);
- entry.setValue(license.getText());
- configs.add(entry);
- tenantConfiguration.setConfiguration(configs);
- }
- }
- } catch (DeviceManagementException e) {
- msg = "Error occurred while retrieving the Windows tenant configuration";
- log.error(msg, e);
- throw new WindowsConfigurationException(msg, e);
- }
- return tenantConfiguration;
- }
+ @ApiOperation(
+ httpMethod = "GET",
+ value = "Getting Windows Platform Configurations",
+ notes = "Get the Windows platform configuration details using this REST API",
+ response = TenantConfiguration.class
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Get Windows Configurations"),
+ @ApiResponse(code = 500, message = "Server Error")
+ })
+ TenantConfiguration getConfiguration() throws WindowsConfigurationException;
/**
* Update Tenant Configurations for the specific Device type.
@@ -143,39 +85,17 @@ public class ConfigurationMgtService {
* @throws WindowsConfigurationException
*/
@PUT
- public Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException {
- String message;
- Message responseMsg = new Message();
- ConfigurationEntry licenseEntry = null;
- try {
- configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- List configs = configuration.getConfiguration();
- for (ConfigurationEntry entry : configs) {
- if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
- License license = new License();
- license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
- license.setVersion("1.0.0");
- license.setText(entry.getValue().toString());
- WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
- MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
- licenseEntry = entry;
- }
- }
-
- if (licenseEntry != null) {
- configs.remove(licenseEntry);
- }
- configuration.setConfiguration(configs);
- WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
- Response.status(Response.Status.CREATED);
- responseMsg.setResponseMessage("Windows platform configuration succeeded.");
- responseMsg.setResponseCode(Response.Status.CREATED.toString());
- } catch (DeviceManagementException e) {
- message = "Error occurred while modifying configuration settings of Windows platform.";
- log.error(message, e);
- throw new WindowsConfigurationException(message, e);
- }
- return responseMsg;
- }
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Updating Windows Platform Configurations",
+ notes = "Update the Windows platform configurations using this REST API"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 201, message = "Created"),
+ @ApiResponse(code = 500, message = "Error occurred while modifying configuration settings of " +
+ "windows platform")
+ })
+ Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/impl/ConfigurationMgtServiceImpl.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/impl/ConfigurationMgtServiceImpl.java
new file mode 100644
index 0000000000..1fd0b2c845
--- /dev/null
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/configurationmgtservice/impl/ConfigurationMgtServiceImpl.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
+import org.wso2.carbon.device.mgt.common.configuration.mgt.TenantConfiguration;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
+import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
+import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
+
+import javax.jws.WebService;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+/**
+ * Windows Platform Configuration REST-API implementation.
+ * All end points supports JSON, XMl with content negotiation.
+ */
+@WebService
+@Produces({"application/json", "application/xml"})
+@Consumes({"application/json", "application/xml"})
+public class ConfigurationMgtServiceImpl {
+
+ private static Log log = LogFactory.getLog(ConfigurationMgtServiceImpl.class);
+
+ /**
+ * Save Tenant configurations.
+ *
+ * @param configuration Tenant Configurations to be saved.
+ * @return Message type object for the provide save status.
+ * @throws WindowsConfigurationException
+ */
+ @POST
+ public Message ConfigureSettings(TenantConfiguration configuration) throws WindowsConfigurationException {
+ Message responseMsg = new Message();
+ ConfigurationEntry licenseEntry = null;
+ String message;
+
+ try {
+ configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ if (!configuration.getConfiguration().isEmpty()) {
+ List configs = configuration.getConfiguration();
+ for (ConfigurationEntry entry : configs) {
+ if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
+ License license = new License();
+ license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
+ license.setVersion("1.0.0");
+ license.setText(entry.getValue().toString());
+ WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
+ MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
+ licenseEntry = entry;
+ }
+ }
+
+ if (licenseEntry != null) {
+ configs.remove(licenseEntry);
+ }
+ configuration.setConfiguration(configs);
+ WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
+ Response.status(Response.Status.CREATED);
+ responseMsg.setResponseMessage("Windows platform configuration saved successfully.");
+ responseMsg.setResponseCode(Response.Status.CREATED.toString());
+ return responseMsg;
+ }
+ else {
+ Response.status(Response.Status.BAD_REQUEST);
+ responseMsg.setResponseMessage("Windows platform configuration can not be saved.");
+ responseMsg.setResponseCode(Response.Status.CREATED.toString());
+ }
+ } catch (DeviceManagementException e) {
+ message = "Error Occurred in while configuring Windows Platform.";
+ log.error(message, e);
+ throw new WindowsConfigurationException(message, e);
+ }
+ return responseMsg;
+ }
+
+ /**
+ * Retrieve Tenant configurations according to the device type.
+ *
+ * @return Tenant configuration object contains specific tenant configurations.
+ * @throws WindowsConfigurationException
+ */
+ @GET
+ public TenantConfiguration getConfiguration() throws WindowsConfigurationException {
+ String msg;
+ TenantConfiguration tenantConfiguration = null;
+ try {
+ if (WindowsAPIUtils.getDeviceManagementService().
+ getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS) != null) {
+ tenantConfiguration = WindowsAPIUtils.getDeviceManagementService().
+ getConfiguration(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ List configs = tenantConfiguration.getConfiguration();
+ ConfigurationEntry entry = new ConfigurationEntry();
+ License license = WindowsAPIUtils.getDeviceManagementService().getLicense(
+ DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, PluginConstants.
+ TenantConfigProperties.LANGUAGE_US);
+ if(license != null) {
+ entry.setContentType(PluginConstants.TenantConfigProperties.CONTENT_TYPE_TEXT);
+ entry.setName(PluginConstants.TenantConfigProperties.LICENSE_KEY);
+ entry.setValue(license.getText());
+ configs.add(entry);
+ tenantConfiguration.setConfiguration(configs);
+ }
+ }
+ } catch (DeviceManagementException e) {
+ msg = "Error occurred while retrieving the Windows tenant configuration";
+ log.error(msg, e);
+ throw new WindowsConfigurationException(msg, e);
+ }
+ return tenantConfiguration;
+ }
+
+ /**
+ * Update Tenant Configurations for the specific Device type.
+ *
+ * @param configuration Tenant configurations to be updated.
+ * @return Response message.
+ * @throws WindowsConfigurationException
+ */
+ @PUT
+ public Message updateConfiguration(TenantConfiguration configuration) throws WindowsConfigurationException {
+ String message;
+ Message responseMsg = new Message();
+ ConfigurationEntry licenseEntry = null;
+ try {
+ configuration.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ List configs = configuration.getConfiguration();
+ for (ConfigurationEntry entry : configs) {
+ if (PluginConstants.TenantConfigProperties.LICENSE_KEY.equals(entry.getName())) {
+ License license = new License();
+ license.setName(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ license.setLanguage(PluginConstants.TenantConfigProperties.LANGUAGE_US);
+ license.setVersion("1.0.0");
+ license.setText(entry.getValue().toString());
+ WindowsAPIUtils.getDeviceManagementService().addLicense(DeviceManagementConstants.
+ MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS, license);
+ licenseEntry = entry;
+ }
+ }
+
+ if (licenseEntry != null) {
+ configs.remove(licenseEntry);
+ }
+ configuration.setConfiguration(configs);
+ WindowsAPIUtils.getDeviceManagementService().saveConfiguration(configuration);
+ Response.status(Response.Status.CREATED);
+ responseMsg.setResponseMessage("Windows platform configuration succeeded.");
+ responseMsg.setResponseCode(Response.Status.CREATED.toString());
+ } catch (DeviceManagementException e) {
+ message = "Error occurred while modifying configuration settings of Windows platform.";
+ log.error(message, e);
+ throw new WindowsConfigurationException(message, e);
+ }
+ return responseMsg;
+ }
+}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/DeviceManagementService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/DeviceManagementService.java
index 3c129303d8..34ff654fd9 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/DeviceManagementService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/DeviceManagementService.java
@@ -18,32 +18,29 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.wso2.carbon.device.mgt.common.Device;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
-import org.wso2.carbon.device.mgt.common.DeviceManagementException;
import org.wso2.carbon.device.mgt.common.license.mgt.License;
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
-import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
import javax.jws.WebService;
import javax.ws.rs.*;
-import javax.ws.rs.core.Response;
+import javax.ws.rs.core.MediaType;
import java.util.List;
/**
* Windows Device Management REST-API implementation.
* All end points supports JSON, XMl with content negotiation.
*/
+@Api(value = "DeviceManagementService", description = "Windows Device Management REST-API implementation.")
@WebService
@Produces({"application/json", "application/xml"})
@Consumes({"application/json", "application/xml"})
-public class DeviceManagementService {
-
- private static Log log = LogFactory.getLog(DeviceManagementService.class);
+public interface DeviceManagementService {
/**
* Get all devices.Returns list of Windows devices registered in MDM.
@@ -52,21 +49,21 @@ public class DeviceManagementService {
* @throws WindowsConfigurationException
*/
@GET
- public List getAllDevices()
- throws WindowsConfigurationException {
- String msg;
- List devices;
-
- try {
- devices = WindowsAPIUtils.getDeviceManagementService().
- getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- } catch (DeviceManagementException e) {
- msg = "Error occurred while fetching the device list.";
- log.error(msg, e);
- throw new WindowsConfigurationException(msg, e);
- }
- return devices;
- }
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of All Windows Devices",
+ notes = "Use this REST API to retrieve the details " +
+ "(e.g., the Android device type, serial number, International Mobile Station Equipment Identity " +
+ "(IMEI), owner, version, model etc.) of all Windows devices that are registered with WSO2 EMM.",
+ response = Device.class,
+ responseContainer = "List"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "List of Devices"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device list")
+ })
+ List getAllDevices() throws WindowsConfigurationException;
/**
* Fetch Windows device details of a given device Id.
@@ -77,25 +74,21 @@ public class DeviceManagementService {
*/
@GET
@Path("{id}")
- public org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id)
- throws WindowsConfigurationException {
-
- String msg;
- org.wso2.carbon.device.mgt.common.Device device;
-
- try {
- DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
- device = WindowsAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
- if (device == null) {
- Response.status(Response.Status.NOT_FOUND);
- }
- } catch (DeviceManagementException deviceMgtEx) {
- msg = "Error occurred while fetching the device information.";
- log.error(msg, deviceMgtEx);
- throw new WindowsConfigurationException(msg, deviceMgtEx);
- }
- return device;
- }
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting Details of an Windows Device",
+ notes = "Use this REST API to retrieve the details " +
+ "(e.g., the Android device type, serial number, International Mobile Station Equipment Identity " +
+ "(IMEI), owner, version, model etc.) of a specific Windows device that is registered with WSO2 EMM",
+ response = Device.class
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Information of the given device"),
+ @ApiResponse(code = 500, message = "Error occurred while fetching the device information")
+ })
+ org.wso2.carbon.device.mgt.common.Device getDevice(@PathParam("id") String id)
+ throws WindowsConfigurationException;
/**
* Update Windows device details of given device id.
@@ -106,53 +99,35 @@ public class DeviceManagementService {
* @throws WindowsConfigurationException
*/
@PUT
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "PUT",
+ value = "Updating the Details of an Windows Device",
+ notes = "Use this REST API to update the details of an Windows device"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 202, message = "The device enrollment details has been updated successfully"),
+ @ApiResponse(code = 500, message = "Error occurred while modifying the device information"),
+ @ApiResponse(code = 304, message = "Device not found for the update")
+ })
@Path("{id}")
- public Message updateDevice(@PathParam("id") String id, Device device)
- throws WindowsConfigurationException {
- String msg;
- Message responseMessage = new Message();
- DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
- deviceIdentifier.setId(id);
- deviceIdentifier
- .setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- boolean result;
- try {
- device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
- result = WindowsAPIUtils.getDeviceManagementService()
- .updateDeviceInfo(deviceIdentifier, device);
- if (result) {
- Response.status(Response.Status.ACCEPTED);
- responseMessage.setResponseMessage("Device information has modified successfully.");
- } else {
- Response.status(Response.Status.NOT_MODIFIED);
- responseMessage.setResponseMessage("Device not found for the update.");
- }
- } catch (DeviceManagementException e) {
- msg = "Error occurred while modifying the device information.";
- log.error(msg, e);
- throw new WindowsConfigurationException(msg, e);
- }
- return responseMessage;
- }
+ Message updateDevice(@PathParam("id") String id, Device device) throws WindowsConfigurationException;
@GET
@Path("license")
@Produces("application/json")
- public License getLicense() throws WindowsConfigurationException {
- License license;
-
- try {
- license =
- WindowsAPIUtils.getDeviceManagementService().getLicense(
- DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS,
- DeviceManagementConstants.LanguageCodes.LANGUAGE_CODE_ENGLISH_US);
- } catch (DeviceManagementException e) {
- String msg = "Error occurred while retrieving the license configured for Windows device enrollment";
- log.error(msg, e);
- throw new WindowsConfigurationException(msg, e);
- }
- return license;
- }
-
+ @ApiOperation(
+ produces = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Getting the License Agreement for Windows Device Registration",
+ notes = "Use this REST API to retrieve the license agreement that is used for the Windows device " +
+ "registration process",
+ response = String.class)
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Licence agreement"),
+ @ApiResponse(code = 500, message = "Error occurred while retrieving the license configured for Windows " +
+ "device enrolment")
+ })
+ License getLicense() throws WindowsConfigurationException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/impl/DeviceManagementServiceImpl.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/impl/DeviceManagementServiceImpl.java
new file mode 100644
index 0000000000..7e353f3462
--- /dev/null
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/devicemgtservice/impl/DeviceManagementServiceImpl.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.Device;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
+import org.wso2.carbon.device.mgt.common.DeviceManagementException;
+import org.wso2.carbon.device.mgt.common.license.mgt.License;
+import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
+
+import javax.jws.WebService;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+import java.util.List;
+
+/**
+ * Windows Device Management REST-API implementation.
+ * All end points supports JSON, XMl with content negotiation.
+ */
+@WebService
+@Produces({"application/json", "application/xml"})
+@Consumes({"application/json", "application/xml"})
+public class DeviceManagementServiceImpl {
+
+ private static Log log = LogFactory.getLog(DeviceManagementServiceImpl.class);
+
+ /**
+ * Get all devices.Returns list of Windows devices registered in MDM.
+ *
+ * @return Device List
+ * @throws WindowsConfigurationException
+ */
+ @GET
+ public List getAllDevices()
+ throws WindowsConfigurationException {
+ String msg;
+ List devices;
+
+ try {
+ devices = WindowsAPIUtils.getDeviceManagementService().
+ getAllDevices(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ } catch (DeviceManagementException e) {
+ msg = "Error occurred while fetching the device list.";
+ log.error(msg, e);
+ throw new WindowsConfigurationException(msg, e);
+ }
+ return devices;
+ }
+
+ /**
+ * Fetch Windows device details of a given device Id.
+ *
+ * @param id Device Id
+ * @return Device
+ * @throws WindowsConfigurationException
+ */
+ @GET
+ @Path("{id}")
+ public Device getDevice(@PathParam("id") String id)
+ throws WindowsConfigurationException {
+
+ String msg;
+ Device device;
+
+ try {
+ DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
+ device = WindowsAPIUtils.getDeviceManagementService().getDevice(deviceIdentifier);
+ if (device == null) {
+ Response.status(Response.Status.NOT_FOUND);
+ }
+ } catch (DeviceManagementException deviceMgtEx) {
+ msg = "Error occurred while fetching the device information.";
+ log.error(msg, deviceMgtEx);
+ throw new WindowsConfigurationException(msg, deviceMgtEx);
+ }
+ return device;
+ }
+
+ /**
+ * Update Windows device details of given device id.
+ *
+ * @param id Device Id
+ * @param device Device Details
+ * @return Message
+ * @throws WindowsConfigurationException
+ */
+ @PUT
+ @Path("{id}")
+ public Message updateDevice(@PathParam("id") String id, Device device)
+ throws WindowsConfigurationException {
+ String msg;
+ Message responseMessage = new Message();
+ DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
+ deviceIdentifier.setId(id);
+ deviceIdentifier
+ .setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ boolean result;
+ try {
+ device.setType(DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS);
+ result = WindowsAPIUtils.getDeviceManagementService()
+ .updateDeviceInfo(deviceIdentifier, device);
+ if (result) {
+ Response.status(Response.Status.ACCEPTED);
+ responseMessage.setResponseMessage("Device information has modified successfully.");
+ } else {
+ Response.status(Response.Status.NOT_MODIFIED);
+ responseMessage.setResponseMessage("Device not found for the update.");
+ }
+ } catch (DeviceManagementException e) {
+ msg = "Error occurred while modifying the device information.";
+ log.error(msg, e);
+ throw new WindowsConfigurationException(msg, e);
+ }
+ return responseMessage;
+ }
+
+ @GET
+ @Path("license")
+ @Produces("application/json")
+ public License getLicense() throws WindowsConfigurationException {
+ License license;
+
+ try {
+ license =
+ WindowsAPIUtils.getDeviceManagementService().getLicense(
+ DeviceManagementConstants.MobileDeviceTypes.MOBILE_DEVICE_TYPE_WINDOWS,
+ DeviceManagementConstants.LanguageCodes.LANGUAGE_CODE_ENGLISH_US);
+ } catch (DeviceManagementException e) {
+ String msg = "Error occurred while retrieving the license configured for Windows device enrollment";
+ log.error(msg, e);
+ throw new WindowsConfigurationException(msg, e);
+ }
+ return license;
+ }
+
+}
+
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/DiscoveryService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/DiscoveryService.java
index d389b3d4ff..b4a206fcea 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/DiscoveryService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/DiscoveryService.java
@@ -18,6 +18,9 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryRequest;
import org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans.DiscoveryResponse;
@@ -46,6 +49,17 @@ public interface DiscoveryService {
@RequestWrapper(localName = "Discover", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
@WebMethod(operationName = "Discover")
@ResponseWrapper(localName = "DiscoverResponse", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
+ @ApiOperation(
+ httpMethod = "POST",
+ value = "Discover the EMM server via REST API.",
+ notes = "Request the server endpoints.",
+ response = DiscoveryResponse.class
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200,
+ message = "Windows policy, policy endpoints, enrollment endpoints and authentication endpoint."),
+ @ApiResponse(code = 500, message = "Internal server error")
+ })
void discover(
@WebParam(name = "request", targetNamespace = PluginConstants.DISCOVERY_SERVICE_TARGET_NAMESPACE)
DiscoveryRequest request,
@@ -57,6 +71,15 @@ public interface DiscoveryService {
@GET
@WebMethod
@WebResult()
+ @ApiOperation(
+ httpMethod = "GET",
+ value = "Discover the EMM server via REST API.",
+ notes = "Check the server availability."
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Ok."),
+ @ApiResponse(code = 500, message = "Internal server error.")
+ })
Response discoverGet();
}
\ No newline at end of file
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryRequest.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryRequest.java
index de1ccbd132..179e5d3793 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryRequest.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryRequest.java
@@ -18,21 +18,32 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
-import javax.xml.bind.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DiscoveryRequest")
@SuppressWarnings("unused")
+@ApiModel(value = "DiscoveryRequest",
+ description = "This class carries all information related to Discovery request.")
public class DiscoveryRequest implements Serializable {
@XmlElement(name = "EmailAddress", required = true)
+ @ApiModelProperty(name = "emailId", value = "Email ID.", required = true)
private String emailId;
@XmlElement(name = "RequestVersion")
+ @ApiModelProperty(name = "version", value = "Request Version.", required = true)
private String version;
@XmlElement(name = "DeviceType")
+ @ApiModelProperty(name = "deviceType", value = "Type of the Device.", required = true)
private String deviceType;
public String getEmailId() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryResponse.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryResponse.java
index f65b0e217a..6ca3a7a563 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryResponse.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/discovery/beans/DiscoveryResponse.java
@@ -18,24 +18,40 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.discovery.beans;
-import javax.xml.bind.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DiscoveryResponse")
@SuppressWarnings("unused")
+@ApiModel(value = "DiscoveryResponse",
+ description = "This class carries all information related to DiscoverResponse.")
public class DiscoveryResponse implements Serializable {
@XmlElement(name = "AuthPolicy")
+ @ApiModelProperty(name = "authPolicy",
+ value = "Authentication policy(On-premise/Federated)", required = true)
private String authPolicy;
@XmlElement(name = "EnrollmentPolicyServiceUrl")
+ @ApiModelProperty(name = "enrollmentPolicyServiceUrl",
+ value = "Enrollment policy(XCEP) endpoint URL.", required = true)
private String enrollmentPolicyServiceUrl;
@XmlElement(name = "EnrollmentServiceUrl")
+ @ApiModelProperty(name = "enrollmentServiceUrl",
+ value = "Enrollment Service(WSTEP) endpoint URL.", required = true)
private String enrollmentServiceUrl;
@XmlElement(name = "AuthenticationServiceUrl")
+ @ApiModelProperty(name = "authenticationServiceUrl",
+ value = "SOAP request authentication service URL", required = true)
private String authenticationServiceUrl;
public void setAuthenticationServiceUrl(String authenticationServiceUrl) {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/PolicyMgtService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/PolicyMgtService.java
index dd4ab57744..348d3068f7 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/PolicyMgtService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/PolicyMgtService.java
@@ -18,54 +18,38 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
-import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
-import org.wso2.carbon.policy.mgt.common.Policy;
-import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
-import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
import javax.jws.WebService;
import javax.ws.rs.*;
-import javax.ws.rs.core.Response;
/**
* Endpoint for Enforce Effective Policy.
*/
+@Api(value = "PolicyMgtService", description = "Windows Device Management REST-API implementation.")
@WebService
@Produces({"application/json", "application/xml"})
@Consumes({"application/json", "application/xml"})
-public class PolicyMgtService {
- private static Log log = LogFactory.getLog(PolicyMgtService.class);
-
+public interface PolicyMgtService {
@GET
@Path("{id}")
- public Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
- @PathParam("id") String id) throws WindowsConfigurationException {
-
- DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
- Message responseMessage = new Message();
- Policy policy;
- try {
- PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
- policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
- if (policy == null) {
- responseMessage.setResponseCode(Response.Status.NO_CONTENT.toString());
- responseMessage.setResponseMessage("No effective policy found");
- return responseMessage;
- } else {
- responseMessage.setResponseCode(Response.Status.OK.toString());
- responseMessage.setResponseMessage("Effective policy added to operation");
- return responseMessage;
- }
-
- } catch (PolicyManagementException e) {
- String msg = "Error occurred while getting the policy.";
- log.error(msg, e);
- throw new WindowsConfigurationException(msg, e);
- }
- }
+ @ApiOperation(
+ httpMethod = "GET",
+ value = "Identifying whether a Policy is Enforced on an Windows Device",
+ notes = "When a device registers with WSO2 EMM, a policy is enforced on the device based on the policy " +
+ "enforcement criteria. Using this API you are able to identify if a specific device has a policy " +
+ "enforced or if no policy is enforced on the device."
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Effective policy added to operation"),
+ @ApiResponse(code = 204, message = "No effective policy found")
+ })
+ Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
+ @PathParam("id") String id) throws WindowsConfigurationException;
}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/impl/PolicyMgtServiceImpl.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/impl/PolicyMgtServiceImpl.java
new file mode 100644
index 0000000000..406d96e8f0
--- /dev/null
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/policymgtservice/impl/PolicyMgtServiceImpl.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * WSO2 Inc. licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
+import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.Message;
+import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
+import org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.PolicyMgtService;
+import org.wso2.carbon.policy.mgt.common.Policy;
+import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
+import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
+
+import javax.jws.WebService;
+import javax.ws.rs.*;
+import javax.ws.rs.core.Response;
+
+/**
+ * Endpoint for Enforce Effective Policy.
+ */
+
+@WebService
+@Produces({"application/json", "application/xml"})
+@Consumes({"application/json", "application/xml"})
+public class PolicyMgtServiceImpl implements PolicyMgtService {
+ private static Log log = LogFactory.getLog(PolicyMgtServiceImpl.class);
+
+ @GET
+ public Message getEffectivePolicy(@HeaderParam("Accept") String acceptHeader,
+ @PathParam("id") String id) throws WindowsConfigurationException {
+
+ DeviceIdentifier deviceIdentifier = WindowsAPIUtils.convertToDeviceIdentifierObject(id);
+ Message responseMessage = new Message();
+ Policy policy;
+ try {
+ PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
+ policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
+ if (policy == null) {
+ responseMessage.setResponseCode(Response.Status.NO_CONTENT.toString());
+ responseMessage.setResponseMessage("No effective policy found");
+ return responseMessage;
+ } else {
+ responseMessage.setResponseCode(Response.Status.OK.toString());
+ responseMessage.setResponseMessage("Effective policy added to operation");
+ return responseMessage;
+ }
+
+ } catch (PolicyManagementException e) {
+ String msg = "Error occurred while getting the policy.";
+ log.error(msg, e);
+ throw new WindowsConfigurationException(msg, e);
+ }
+ }
+}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/SyncmlService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/SyncmlService.java
index 9402dbdff8..b51f696445 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/SyncmlService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/SyncmlService.java
@@ -18,6 +18,10 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import org.w3c.dom.Document;
import org.wso2.carbon.device.mgt.common.notification.mgt.NotificationManagementException;
import org.wso2.carbon.mdm.mobileservices.windows.common.PluginConstants;
@@ -35,6 +39,7 @@ import javax.ws.rs.core.Response;
/**
* Interface for Syncml message flow.
*/
+@Api(value = "SyncmlService", description = "Windows Device Management REST-API implementation.")
@Path("/devicemanagement")
public interface SyncmlService {
@@ -42,6 +47,17 @@ public interface SyncmlService {
@POST
@Consumes({PluginConstants.SYNCML_MEDIA_TYPE, MediaType.APPLICATION_XML})
@Produces(PluginConstants.SYNCML_MEDIA_TYPE)
+ @ApiOperation(
+ consumes = "application/vnd.syncml.dm+xml;charset=utf-8",
+ produces = "application/vnd.syncml.dm+xml;charset=utf-8",
+ httpMethod = "POST",
+ value = "Windows Device Management service REST API",
+ notes = "Windows device management session"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Successfully completed syncml session"),
+ @ApiResponse(code = 500, message = "Internal server error")
+ })
Response getResponse(Document request) throws WindowsDeviceEnrolmentException, WindowsOperationException,
NotificationManagementException, WindowsConfigurationException;
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/BasicOperation.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/BasicOperation.java
index 5ee38655dd..cfa2cfbb9a 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/BasicOperation.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/BasicOperation.java
@@ -18,11 +18,16 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Bean for get basic operations.
*/
+@ApiModel(value = "BasicOperation",
+ description = "This class carries all information related to Basic operation.")
public class BasicOperation {
-
+ @ApiModelProperty(name = "name", value = "Name of the basic operation.", required = true)
private String name;
public String getName() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/PasscodePolicy.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/PasscodePolicy.java
index 569ad03e66..a25e195493 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/PasscodePolicy.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/PasscodePolicy.java
@@ -18,19 +18,38 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Bean for device lockOperationUpdate screen passcode policy.
*/
+@ApiModel(value = "PasscodePolicy",
+ description = "This class carries all information related to Passcode Policy.")
public class PasscodePolicy extends BasicOperation {
+ @ApiModelProperty(name = "maxFailedAttempts", value = "No of Max fail attempts.", required = true)
private int maxFailedAttempts;
+ @ApiModelProperty(name = "minLength", value = "Minimum length of the Passcode.", required = true)
private int minLength;
+ @ApiModelProperty(name = "pinHistory",
+ value = "The number of passwords Windows 10 Mobile remembers in the password history.", required = true)
private int pinHistory;
+ @ApiModelProperty(name = "minComplexChars",
+ value = "The number of password element types (in other words, uppercase letters, lowercase letters, " +
+ "numbers, or punctuation) required to create strong passwords.", required = true)
private int minComplexChars;
+ @ApiModelProperty(name = "maxPINAgeInDays",
+ value = "Number of Maximum days to expire the passcode.", required = true)
private int maxPINAgeInDays;
+ @ApiModelProperty(name = "requireAlphanumeric",
+ value = "An integer value that specifies the complexity of the password or PIN allowed.", required = true)
private boolean requireAlphanumeric;
+ @ApiModelProperty(name = "allowSimple", value = "Set boolean value to allow simple password.", required = true)
private boolean allowSimple;
+ @ApiModelProperty(name = "enablePassword", value = "Set boolean value enable password.", required = true)
private boolean enablePassword;
+ @ApiModelProperty(name = "maxInactiveTime", value = "Maximum Inactive time.", required = true)
private int maxInactiveTime;
public int getMaxInactiveTime() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Profile.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Profile.java
index a8aef33492..4b8a361ae4 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Profile.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Profile.java
@@ -18,14 +18,23 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Class for contains device active policy.
*/
+@ApiModel(value = "Profile",
+ description = "This class carries all information related to Profile features.")
public class Profile {
+ @ApiModelProperty(name = "featureCode", value = "Profile type operation feature code.", required = true)
String featureCode;
+ @ApiModelProperty(name = "data", value = "Profile type operation data content..", required = true)
String data;
+ @ApiModelProperty(name = "enable", value = "Status of the Profile operation.", required = true)
boolean enable;
+ @ApiModelProperty(name = "compliance", value = "Status of the operation compliance.", required = true)
boolean compliance;
public boolean isCompliance() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Wifi.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Wifi.java
index 16a5b0aa3e..fc713077a7 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Wifi.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/beans/Wifi.java
@@ -18,19 +18,33 @@
package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.beans;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Bean for WIFI configurations.
*/
+@ApiModel(value = "Wifi",
+ description = "This class carries all information related to Wifi policy.")
public class Wifi extends BasicOperation {
+ @ApiModelProperty(name = "networkName", value = "Name of the Wifi Network.", required = true)
private String networkName;
+ @ApiModelProperty(name = "ssid", value = "SSID.", required = true)
private String ssid;
+ @ApiModelProperty(name = "connectionType", value = "Type of the connection.", required = true)
private String connectionType;
+ @ApiModelProperty(name = "connectionMode", value = "Connection mode.", required = true)
private String connectionMode;
+ @ApiModelProperty(name = "authentication", value = "Authentication type.", required = true)
private String authentication;
+ @ApiModelProperty(name = "encryption", value = "Encryption type.", required = true)
private String encryption;
+ @ApiModelProperty(name = "keyType", value = "Key type.", required = true)
private String keyType;
+ @ApiModelProperty(name = "protection", value = "Protection.", required = true)
private String protection;
+ @ApiModelProperty(name = "keyMaterial", value = "Key Material.", required = true)
private String keyMaterial;
public String getNetworkName() {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/PolicyManager.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/PolicyManager.java
deleted file mode 100644
index 6ac65b2739..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/PolicyManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
-import org.wso2.carbon.mdm.mobileservices.windows.common.exceptions.WindowsConfigurationException;
-import org.wso2.carbon.mdm.mobileservices.windows.common.util.WindowsAPIUtils;
-import org.wso2.carbon.policy.mgt.common.Policy;
-import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
-import org.wso2.carbon.policy.mgt.core.PolicyManagerService;
-
-/**
- * implementation for PolicyManager
- */
-public class PolicyManager {
-
- private static Log log = LogFactory.getLog(PolicyManager.class);
-
- public Policy getEffectivePolicy(DeviceIdentifier deviceIdentifier) throws WindowsConfigurationException {
- Policy policy;
- PolicyManagerService policyManagerService = WindowsAPIUtils.getPolicyManagerService();
- try {
- policy = policyManagerService.getEffectivePolicy(deviceIdentifier);
- if (policy != null) {
- return policy;
- } else {
- return null;
- }
- } catch (PolicyManagementException e) {
- String msg = "Error occurred while getting policy.";
- log.error(msg, e);
- throw new WindowsConfigurationException();
-
- }
- }
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/SyncmlUtils.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/SyncmlUtils.java
deleted file mode 100644
index e693c6e9dc..0000000000
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/mdm/mobileservices/windows/services/syncml/util/SyncmlUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
- *
- * WSO2 Inc. licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.wso2.carbon.mdm.mobileservices.windows.services.syncml.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
-
-/**
- * Class for generate Device object from the received data.
- */
-public class SyncmlUtils {
-
- private static Log log = LogFactory.getLog(SyncmlUtils.class);
-
- /**
- * This method returns Device Management Object for certain tasks such as Device enrollment etc.
- *
- * @return DeviceManagementServiceObject
- */
- public static DeviceManagementProviderService getDeviceManagementService() {
- try {
- PrivilegedCarbonContext context = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-
- return (DeviceManagementProviderService) context.getOSGiService(DeviceManagementProviderService.class,
- null);
- } finally {
- PrivilegedCarbonContext.endTenantFlow();
- }
- }
-
-}
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/cxf-servlet.xml b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/cxf-servlet.xml
index ad2863d955..168cb1c535 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/cxf-servlet.xml
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/webapp/WEB-INF/cxf-servlet.xml
@@ -197,11 +197,11 @@
class="org.wso2.carbon.mdm.mobileservices.windows.services.wstep.util.MessageHandler"/>
+ class="org.wso2.carbon.mdm.mobileservices.windows.services.configurationmgtservice.ConfigurationMgtServiceImpl"/>
+ class="org.wso2.carbon.mdm.mobileservices.windows.services.policymgtservice.PolicyMgtServiceImpl"/>
+ class="org.wso2.carbon.mdm.mobileservices.windows.services.devicemgtservice.DeviceManagementServiceImpl"/>