diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
index 1cf3ce06ad..4a4a2f845c 100644
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
+++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/pom.xml
@@ -153,6 +153,10 @@
org.wso2.carbon.device.mgt.extensions
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
index 2c60c0b4df..dab39be0a7 100644
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
+++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/AndroidSenseService.java
@@ -19,14 +19,13 @@
package org.wso2.carbon.device.mgt.iot.androidsense.service.impl;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.Tag;
+import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
+import org.wso2.carbon.device.mgt.iot.androidsense.service.impl.constants.AndroidSenseConstants;
import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@SwaggerDefinition(
@@ -44,6 +43,16 @@ import javax.ws.rs.core.Response;
@Tag(name = "android_sense", description = "")
}
)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll device",
+ description = "",
+ key = "perm:android-sense:enroll",
+ permissions = {"/device-mgt/devices/enroll/android-sense"}
+ )
+ }
+)
public interface AndroidSenseService {
/**
@@ -54,7 +63,19 @@ public interface AndroidSenseService {
*/
@Path("device/{deviceId}/words")
@POST
- @Scope(key = "device:android-sense:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Send the key words to the device",
+ notes = "",
+ response = Response.class,
+ tags = "android_sense",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidSenseConstants.SCOPE, value = "perm:android-sense:enroll")
+ })
+ }
+ )
Response sendKeyWords(@PathParam("deviceId") String deviceId, @QueryParam("keywords") String keywords);
/**
@@ -65,12 +86,36 @@ public interface AndroidSenseService {
*/
@Path("device/{deviceId}/words/threshold")
@POST
- @Scope(key = "device:android-sense:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Send threshold value to the device",
+ notes = "",
+ response = Response.class,
+ tags = "android_sense",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidSenseConstants.SCOPE, value = "perm:android-sense:enroll")
+ })
+ }
+ )
Response sendThreshold(@PathParam("deviceId") String deviceId, @QueryParam("threshold") String threshold);
@Path("device/{deviceId}/words")
@DELETE
- @Scope(key = "device:android-sense:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "DELETE",
+ value = "Remove key words from the device",
+ notes = "",
+ response = Response.class,
+ tags = "android_sense",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidSenseConstants.SCOPE, value = "perm:android-sense:enroll")
+ })
+ }
+ )
Response removeKeyWords(@PathParam("deviceId") String deviceId, @QueryParam("words") String words);
/**
@@ -79,8 +124,20 @@ public interface AndroidSenseService {
@Path("stats/{deviceId}/sensors/{sensorName}")
@GET
@Consumes("application/json")
- @Scope(key = "device:android-sense:enroll", name = "", description = "")
@Produces("application/json")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Retrieve Sensor data for the device type",
+ notes = "",
+ response = Response.class,
+ tags = "android_sense",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidSenseConstants.SCOPE, value = "perm:android-sense:enroll")
+ })
+ }
+ )
Response getAndroidSenseDeviceStats(@PathParam("deviceId") String deviceId, @PathParam("sensorName") String sensor,
@QueryParam("from") long from, @QueryParam("to") long to);
@@ -89,7 +146,19 @@ public interface AndroidSenseService {
*/
@Path("device/{device_id}/register")
@POST
- @Scope(key = "device:android-sense:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Enroll device",
+ notes = "",
+ response = Response.class,
+ tags = "android_sense",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidSenseConstants.SCOPE, value = "perm:android-sense:enroll")
+ })
+ }
+ )
Response register(@PathParam("device_id") String deviceId, @QueryParam("deviceName") String deviceName);
}
diff --git a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
index e1419844c7..68678d0006 100644
--- a/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
+++ b/components/device-types/androidsense-plugin/org.wso2.carbon.device.mgt.iot.androidsense.api/src/main/java/org/wso2/carbon/device/mgt/iot/androidsense/service/impl/constants/AndroidSenseConstants.java
@@ -42,4 +42,6 @@ public class AndroidSenseConstants {
public static final String CONFIG_TYPE = "general";
public static final String DEFAULT_ENDPOINT = "tcp://localhost:1886";
+ public static final String SCOPE = "scope";
+
}
diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
index 55154f46a7..9b2465e218 100644
--- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
+++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/pom.xml
@@ -141,6 +141,10 @@
org.wso2.carbon.analytics.api
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+
diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoService.java b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoService.java
index cd0ef710b5..3ed382479a 100644
--- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoService.java
+++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/ArduinoService.java
@@ -18,15 +18,14 @@
package org.wso2.carbon.device.mgt.iot.arduino.service.impl;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.Tag;
+import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
+import org.wso2.carbon.device.mgt.iot.arduino.service.impl.constants.ArduinoConstants;
import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@SwaggerDefinition(
@@ -44,26 +43,72 @@ import javax.ws.rs.core.Response;
@Tag(name = "arduino", description = "")
}
)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll device",
+ description = "",
+ key = "perm:arduino:enroll",
+ permissions = {"/device-mgt/devices/enroll/arduino"}
+ )
+ }
+)
public interface ArduinoService {
@Path("device/{deviceId}/bulb")
@POST
- @Scope(key = "device:arduino:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Switch bulb",
+ notes = "",
+ response = Response.class,
+ tags = "arduino",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = ArduinoConstants.SCOPE, value = "perm:arduino:enroll")
+ })
+ }
+ )
Response switchBulb(@PathParam("deviceId") String deviceId, @QueryParam("state") String state);
@Path("device/{deviceId}/controls")
@GET
- @Scope(key = "device:arduino:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Read controls",
+ notes = "",
+ response = Response.class,
+ tags = "arduino",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = ArduinoConstants.SCOPE, value = "perm:arduino:enroll")
+ })
+ }
+ )
Response readControls(@PathParam("deviceId") String deviceId);
/**
- * Retreive Sensor data for the device type
+ * Retrieve Sensor data for the device type
*/
@Path("device/stats/{deviceId}")
@GET
@Consumes("application/json")
@Produces("application/json")
- @Scope(key = "device:arduino:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Retrieve Sensor data for the device type",
+ notes = "",
+ response = Response.class,
+ tags = "arduino",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = ArduinoConstants.SCOPE, value = "perm:arduino:enroll")
+ })
+ }
+ )
Response getArduinoTemperatureStats(@PathParam("deviceId") String deviceId, @QueryParam("from") long from,
@QueryParam("to") long to);
@@ -73,7 +118,19 @@ public interface ArduinoService {
@Path("device/download")
@GET
@Produces("application/octet-stream")
- @Scope(key = "device:arduino:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Download device agent",
+ notes = "",
+ response = Response.class,
+ tags = "arduino",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = ArduinoConstants.SCOPE, value = "perm:arduino:enroll")
+ })
+ }
+ )
Response downloadSketch(@QueryParam("deviceName") String customDeviceName);
}
diff --git a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
index ebf84d9ea9..4f3a042c9a 100644
--- a/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
+++ b/components/device-types/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/java/org/wso2/carbon/device/mgt/iot/arduino/service/impl/constants/ArduinoConstants.java
@@ -27,4 +27,6 @@ public class ArduinoConstants {
public static final String APIM_APPLICATION_TOKEN_VALIDITY_PERIOD = "3600";
+ public static final String SCOPE = "scope";
+
}
diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
index 8df74b2f26..ddae87c220 100644
--- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
+++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/pom.xml
@@ -121,7 +121,11 @@
org.wso2.carbon.device.mgt.extensions
provided
-
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+
+
diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiService.java b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiService.java
index 812c584394..1f227e630e 100644
--- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiService.java
+++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/RaspberryPiService.java
@@ -18,12 +18,10 @@
package org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.Tag;
+import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
+import org.wso2.carbon.device.mgt.iot.raspberrypi.service.impl.constants.RaspberrypiConstants;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@@ -44,11 +42,33 @@ import javax.ws.rs.core.Response;
@Tag(name = "raspberrypi", description = "")
}
)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll device",
+ description = "",
+ key = "perm:raspberrypi:enroll",
+ permissions = {"/device-mgt/devices/enroll/raspberrypi"}
+ )
+ }
+)
public interface RaspberryPiService {
@Path("device/{deviceId}/bulb")
@POST
- @Scope(key = "device:raspberrypi:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Switch bulb",
+ notes = "",
+ response = Response.class,
+ tags = "raspberrypi",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = RaspberrypiConstants.SCOPE, value = "perm:raspberrypi:enroll")
+ })
+ }
+ )
Response switchBulb(@PathParam("deviceId") String deviceId, @QueryParam("state") String state);
/**
@@ -58,7 +78,19 @@ public interface RaspberryPiService {
@GET
@Consumes("application/json")
@Produces("application/json")
- @Scope(key = "device:raspberrypi:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Retreive Sensor data for the device type",
+ notes = "",
+ response = Response.class,
+ tags = "raspberrypi",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = RaspberrypiConstants.SCOPE, value = "perm:raspberrypi:enroll")
+ })
+ }
+ )
Response getRaspberryPiTemperatureStats(@PathParam("deviceId") String deviceId,
@QueryParam("from") long from, @QueryParam("to") long to);
@@ -68,7 +100,19 @@ public interface RaspberryPiService {
@Path("device/download")
@GET
@Produces(MediaType.APPLICATION_JSON)
- @Scope(key = "device:raspberrypi:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Download the agent.",
+ notes = "",
+ response = Response.class,
+ tags = "raspberrypi",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = RaspberrypiConstants.SCOPE, value = "perm:raspberrypi:enroll")
+ })
+ }
+ )
Response downloadSketch(@QueryParam("deviceName") String deviceName, @QueryParam("sketch_type") String sketchType);
}
diff --git a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
index 168cb7d6d3..00919d6f6b 100644
--- a/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
+++ b/components/device-types/raspberrypi-plugin/org.wso2.carbon.device.mgt.iot.raspberrypi.api/src/main/java/org/wso2/carbon/device/mgt/iot/raspberrypi/service/impl/constants/RaspberrypiConstants.java
@@ -33,4 +33,6 @@ public class RaspberrypiConstants {
public static final String APIM_APPLICATION_TOKEN_VALIDITY_PERIOD = "3600";
+ public static final String SCOPE = "scope";
+
}
diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
index 59ccc4a793..6c9cc0636a 100644
--- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
+++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/pom.xml
@@ -240,7 +240,11 @@
org.wso2.carbon.device.mgt.iot.virtualfirealarm.plugin
provided
-
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+
+
diff --git a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmService.java b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmService.java
index 75db835b7b..6585280f0e 100644
--- a/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmService.java
+++ b/components/device-types/virtual-fire-alarm-plugin/org.wso2.carbon.device.mgt.iot.virtualfirealarm.api/src/main/java/org/wso2/carbon/device/mgt/iot/virtualfirealarm/service/impl/VirtualFireAlarmService.java
@@ -18,14 +18,12 @@
package org.wso2.carbon.device.mgt.iot.virtualfirealarm.service.impl;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.Tag;
+import io.swagger.annotations.*;
import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
@@ -50,8 +48,20 @@ import javax.ws.rs.core.Response;
@Tag(name = "virtual_firealarm", description = "")
}
)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll device",
+ description = "",
+ key = "perm:firealarm:enroll",
+ permissions = {"/device-mgt/devices/enroll/firealarm"}
+ )
+ }
+)
public interface VirtualFireAlarmService {
+ String SCOPE = "scope";
+
/**
* This is an API called/used from within the Server(Front-End) or by a device Owner. It sends a control command to
* the VirtualFirealarm device to switch `ON` or `OFF` its buzzer. The method also takes in the protocol to be used
@@ -63,7 +73,19 @@ public interface VirtualFireAlarmService {
*/
@POST
@Path("device/{deviceId}/buzz")
- @Scope(key = "device:firealarm:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "POST",
+ value = "Switch Buzzer",
+ notes = "",
+ response = Response.class,
+ tags = "virtual_firealarm",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = SCOPE, value = "perm:firealarm:enroll")
+ })
+ }
+ )
Response switchBuzzer(@PathParam("deviceId") String deviceId,
@FormParam("state") String state);
@@ -72,7 +94,19 @@ public interface VirtualFireAlarmService {
*/
@Path("device/stats/{deviceId}")
@GET
- @Scope(key = "device:firealarm:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Retrieve Sensor data for the device type",
+ notes = "",
+ response = Response.class,
+ tags = "virtual_firealarm",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = SCOPE, value = "perm:firealarm:enroll")
+ })
+ }
+ )
@Consumes("application/json")
@Produces("application/json")
Response getVirtualFirealarmStats(@PathParam("deviceId") String deviceId, @QueryParam("from") long from,
@@ -81,7 +115,19 @@ public interface VirtualFireAlarmService {
@Path("device/download")
@GET
@Produces("application/zip")
- @Scope(key = "device:firealarm:enroll", name = "", description = "")
+ @ApiOperation(
+ consumes = MediaType.APPLICATION_JSON,
+ httpMethod = "GET",
+ value = "Download agent",
+ notes = "",
+ response = Response.class,
+ tags = "virtual_firealarm",
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = SCOPE, value = "perm:firealarm:enroll")
+ })
+ }
+ )
Response downloadSketch(@QueryParam("deviceName") String deviceName, @QueryParam("sketchType") String sketchType);
}
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml
index 017ff5400c..c2ea041777 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/pom.xml
@@ -143,6 +143,11 @@
org.wso2.carbon.device.mgt.common
provided
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+ provided
+
org.wso2.carbon.devicemgt
org.wso2.carbon.device.mgt.core
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/DeviceManagementAdminService.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/DeviceManagementAdminService.java
index 4386ca5cc4..db795dcd80 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/DeviceManagementAdminService.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/DeviceManagementAdminService.java
@@ -24,15 +24,16 @@ import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.Extension;
import io.swagger.annotations.Tag;
import io.swagger.annotations.Api;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Authorization;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ResponseHeader;
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
import org.wso2.carbon.mdm.services.android.bean.wrapper.*;
+import org.wso2.carbon.mdm.services.android.util.AndroidConstants;
import javax.validation.Valid;
import javax.ws.rs.Consumes;
@@ -64,6 +65,160 @@ import java.util.List;
@Api(value = "Android Device Management Administrative Service", description = "Device management related admin APIs.")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Lock Device",
+ description = "Hard lock own device",
+ key = "perm:android:lock-devices",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/lock"}
+ ),
+ @Scope(
+ name = "Unlock Device",
+ description = "Unlock permanently locked device",
+ key = "perm:android:unlock-devices",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/unlock"}
+ ),
+ @Scope(
+ name = "Get Location",
+ description = "Request device location coordinates",
+ key = "perm:android:location",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/location"}
+ ),
+ @Scope(
+ name = "Clear Password",
+ description = "Clear the password on Android devices",
+ key = "perm:android:clear-password",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/clear-password"}
+ ),
+ @Scope(
+ name = "Control Camera",
+ description = "Enabling or Disabling the Camera on Android Devices",
+ key = "perm:android:control-camera",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/camera"}
+ ),
+ @Scope(
+ name = "Get Info",
+ description = "Requesting device information from Android Devices",
+ key = "perm:android:info",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/info"}
+ ),
+ @Scope(
+ name = "Get Logs",
+ description = "Requesting Logcat Details from Android Devices",
+ key = "perm:android:logcat",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/logcat"}
+ ),
+ @Scope(
+ name = "Enterprise Wipe",
+ description = "Enterprise Wiping Android Devices",
+ key = "perm:android:enterprise-wipe",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/enterprise-wipe"}
+ ),
+ @Scope(
+ name = "Factory Reset",
+ description = "Factory Resetting Android Devices",
+ key = "perm:android:wipe",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/wipe"}
+ ),
+ @Scope(
+ name = "Get Installed Applications",
+ description = "Get list of installed applications",
+ key = "perm:android:applications",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/applications"}
+ ),
+ @Scope(
+ name = "Ring Device",
+ description = "Ring Android devices",
+ key = "perm:android:ring",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/ring"}
+ ),
+ @Scope(
+ name = "Reboot Device",
+ description = "Reboot Android devices",
+ key = "perm:android:reboot",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/reboot"}
+ ),
+ @Scope(
+ name = "Mute Device",
+ description = "Mute Android devices",
+ key = "perm:android:mute",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/mute"}
+ ),
+ @Scope(
+ name = "Install Applications",
+ description = "Installing an Application on Android Devices",
+ key = "perm:android:install-application",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/install-app"}
+ ),
+ @Scope(
+ name = "Update Applications",
+ description = "Updating an Application on Android Devices",
+ key = "perm:android:update-application",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/update-app"}
+ ),
+ @Scope(
+ name = "Uninstall Applications",
+ description = "Uninstalling an Application on Android Devices",
+ key = "perm:android:uninstall-application",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/uninstall-app"}
+ ),
+ @Scope(
+ name = "Blacklist Applications",
+ description = "Blacklisting applications on Android Devices",
+ key = "perm:android:blacklist-applications",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/blacklist-app"}
+ ),
+ @Scope(
+ name = "Upgrade Firmware",
+ description = "Upgrading Firmware of Android Devices",
+ key = "perm:android:upgrade-firmware",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/upgrade"}
+ ),
+ @Scope(
+ name = "Configure VPN",
+ description = "Configure VPN on Android Device",
+ key = "perm:android:configure-vpn",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/vpn"}
+ ),
+ @Scope(
+ name = "Send Notification",
+ description = "Sending a notification to Android Device",
+ key = "perm:android:send-notification",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/send-notification"}
+ ),
+ @Scope(
+ name = "Configure Wi-Fi",
+ description = "Configure Wi-Fi on Android Device",
+ key = "perm:android:configure-wifi",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/wifi"}
+ ),
+ @Scope(
+ name = "Encrypt Storage",
+ description = "Encrypting storage on Android Device",
+ key = "perm:android:encrypt-storage",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/encrypt"}
+ ),
+ @Scope(
+ name = "Change Password",
+ description = "Changing the lock code of an Android Device",
+ key = "perm:android:change-lock-code",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/change-lock-code"}
+ ),
+ @Scope(
+ name = "Password Policy",
+ description = "Set password policy of an Android Device",
+ key = "perm:android:set-password-policy",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/password-policy"}
+ ),
+ @Scope(
+ name = "Add Web clip",
+ description = "Setting a Web Clip on Android Devices",
+ key = "perm:android:set-webclip",
+ permissions = {"/device-mgt/devices/owning-device/operations/android/webclip"}
+ )
+ }
+)
public interface DeviceManagementAdminService {
@POST
@@ -76,13 +231,10 @@ public interface DeviceManagementAdminService {
"permanently locks the device or screen locking an Android device.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/lock",
- description = "Lock Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:lock-devices")
+ })
}
)
@ApiResponses(value = {
@@ -142,13 +294,10 @@ public interface DeviceManagementAdminService {
notes = "Unlock devices that were locked permanently using the hard lock operation. Devices that are hard locked can only be unlocked by the EMM administrator.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/unlock",
- description = "Unlock Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:unlock-devices")
+ })
}
)
@ApiResponses(value = {
@@ -208,13 +357,10 @@ public interface DeviceManagementAdminService {
"Example: In situations where you have lost your device and need to find out where it is, you can use this REST API to get the location of the device.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/location",
- description = "Get Device Location") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:location")
+ })
}
)
@ApiResponses(value = {
@@ -270,13 +416,10 @@ public interface DeviceManagementAdminService {
notes = "Clear the password on Android devices",
response = Activity.class,
tags = "Android Device Management Administrative Service.",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/clear-password",
- description = "Clear Password of Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:clear-password")
+ })
}
)
@ApiResponses(value = {
@@ -331,13 +474,11 @@ public interface DeviceManagementAdminService {
notes = "Enable or disable the camera on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/owning-device/operations/android/camera", description = "Manage Camera") }
- )
- }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:control-camera")
+ })
+ } )
@ApiResponses(value = {
@ApiResponse(
code = 201,
@@ -398,13 +539,10 @@ public interface DeviceManagementAdminService {
"the list of operations that needs to be executed on the device",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/info",
- description = "Get Device Information") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:info")
+ })
}
)
@ApiResponses(value = {
@@ -464,13 +602,10 @@ public interface DeviceManagementAdminService {
"the list of operations that needs to be executed on the device.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/logcat",
- description = "Get Logs") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:logcat")
+ })
}
)
@ApiResponses(value = {
@@ -529,13 +664,10 @@ public interface DeviceManagementAdminService {
"personal data intact. You are able to enterprise wipe Android devices using this REST API.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/enterprise-wipe",
- description = "Enterprise Wipe") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enterprise-wipe")
+ })
}
)
@ApiResponses(value = {
@@ -592,13 +724,10 @@ public interface DeviceManagementAdminService {
"to restore them back to the original system.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/wipe",
- description = "Factory Reset") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:wipe")
+ })
}
)
@ApiResponses(value = {
@@ -659,13 +788,10 @@ public interface DeviceManagementAdminService {
"on the device.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/applications",
- description = "Get Installed Application") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:applications")
+ })
}
)
@ApiResponses(value = {
@@ -722,13 +848,10 @@ public interface DeviceManagementAdminService {
notes = "Ring Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/ring",
- description = "Ring Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:ring")
+ })
}
)
@ApiResponses(value = {
@@ -785,13 +908,10 @@ public interface DeviceManagementAdminService {
notes = "Reboot or restart your Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/reboot",
- description = "Reboot Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:reboot")
+ })
}
)
@ApiResponses(value = {
@@ -840,6 +960,7 @@ public interface DeviceManagementAdminService {
List deviceIDs);
@POST
+ @Path("/mute")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
@@ -847,13 +968,10 @@ public interface DeviceManagementAdminService {
notes = "Mute or enable a silent profile for Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/mute",
- description = "Mute Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:mute")
+ })
}
)
@ApiResponses(value = {
@@ -894,7 +1012,6 @@ public interface DeviceManagementAdminService {
message = "Internal Server Error. \n " +
"Server error occurred while adding a new device mute operation.")
})
- @Path("/mute")
Response muteDevice(
@ApiParam(
name = "deviceIDs",
@@ -913,13 +1030,10 @@ public interface DeviceManagementAdminService {
" the application installation will happen in silent mode, else the device user's consent will be required.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/install-app",
- description = "Install Applications") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:install-application")
+ })
}
)
@ApiResponses(value = {
@@ -981,13 +1095,10 @@ public interface DeviceManagementAdminService {
"mode, else the device user's consent is required.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/update-app",
- description = "Update installed applications") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:update-application")
+ })
}
)
@ApiResponses(value = {
@@ -1046,13 +1157,10 @@ public interface DeviceManagementAdminService {
notes = "Uninstall an application from Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/uninstall-app",
- description = "Uninstall Applications") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:uninstall-application")
+ })
}
)
@ApiResponses(value = {
@@ -1115,13 +1223,10 @@ public interface DeviceManagementAdminService {
"COPE devices. Applications can be blacklisted via the application restriction policy too.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/blacklist-app",
- description = "Blacklist Applications") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:blacklist-applications")
+ })
}
)
@ApiResponses(value = {
@@ -1176,17 +1281,14 @@ public interface DeviceManagementAdminService {
consumes = MediaType.APPLICATION_JSON,
produces = MediaType.APPLICATION_JSON,
httpMethod = "POST",
- value = "UUpgrading Firmware of Android Devices",
+ value = "Upgrading Firmware of Android Devices",
notes = "Upgrade the firmware of Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/upgrade",
- description = "Upgrade Firmware") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:upgrade-firmware")
+ })
}
)
@ApiResponses(value = {
@@ -1247,13 +1349,10 @@ public interface DeviceManagementAdminService {
notes = "Configure VPN on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/vpn",
- description = "Add VPN") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:configure-vpn")
+ })
}
)
@ApiResponses(value = {
@@ -1310,13 +1409,10 @@ public interface DeviceManagementAdminService {
notes = "Send a notification or message to Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/send-notification",
- description = "Send Notifications") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:send-notification")
+ })
}
)
@ApiResponses(value = {
@@ -1374,13 +1470,10 @@ public interface DeviceManagementAdminService {
notes = "Configure Wi-Fi on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/wifi",
- description = "Add Wifi Configuration") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:configure-wifi")
+ })
}
)
@ApiResponses(value = {
@@ -1439,13 +1532,10 @@ public interface DeviceManagementAdminService {
notes = "Encrypt the data stored on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/encrypt",
- description = "Encrypt Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:encrypt-storage")
+ })
}
)
@ApiResponses(value = {
@@ -1504,13 +1594,10 @@ public interface DeviceManagementAdminService {
notes = "Change the lock code on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/change-lock-code",
- description = "Change Password of Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:change-lock-code")
+ })
}
)
@ApiResponses(value = {
@@ -1569,13 +1656,10 @@ public interface DeviceManagementAdminService {
notes = "Set a password policy on Android devices.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/password-policy",
- description = "Set Password Policy") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:set-password-policy")
+ })
}
)
@ApiResponses(value = {
@@ -1624,7 +1708,7 @@ public interface DeviceManagementAdminService {
PasswordPolicyBeanWrapper passwordPolicyBeanWrapper);
@POST
- @Path("set-webclip")
+ @Path("/set-webclip")
@ApiOperation(
consumes = MediaType.APPLICATION_JSON,
httpMethod = "POST",
@@ -1632,13 +1716,10 @@ public interface DeviceManagementAdminService {
notes = "Set a web clip on Android devices. A web clip is used to add a bookmark to a web application.",
response = Activity.class,
tags = "Android Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/android/webclip",
- description = "Add Webclips") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:set-webclip")
+ })
}
)
@ApiResponses(value = {
diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java
index cf1ba24316..5c7df5f1f0 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/services/DeviceManagementService.java
@@ -18,22 +18,14 @@
*/
package org.wso2.carbon.mdm.services.android.services;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import io.swagger.annotations.Authorization;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.ResponseHeader;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Tag;
+import io.swagger.annotations.*;
+
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.operation.mgt.Operation;
import org.wso2.carbon.mdm.services.android.bean.wrapper.AndroidApplication;
import org.wso2.carbon.mdm.services.android.bean.wrapper.AndroidDevice;
+import org.wso2.carbon.mdm.services.android.util.AndroidConstants;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@@ -72,6 +64,22 @@ import java.util.List;
@Path("/devices")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll Device",
+ description = "Register an Android device",
+ key = "perm:android:enroll",
+ permissions = {"/device-mgt/devices/enroll/android"}
+ ),
+ @Scope(
+ name = "Un-enroll Device",
+ description = "Unregister an Android device",
+ key = "perm:android:disenroll",
+ permissions = {"/device-mgt/devices/disenroll/android"}
+ )
+ }
+)
public interface DeviceManagementService {
@PUT
@@ -83,12 +91,10 @@ public interface DeviceManagementService {
value = "Updating the Application Details on Android Devices",
notes = "Update the details of the applications that are installed on Android devices.",
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(value = {
@@ -150,12 +156,10 @@ public interface DeviceManagementService {
"The server then updates the status of the operations that were carried out on the device.",
response = Operation.class,
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(value = {
@@ -216,12 +220,10 @@ public interface DeviceManagementService {
" you can use this REST API to register an Android device with WSO2 EMM, without having to install" +
" an Android Agent. This API can be mainly used to test the device enrollment process.",
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(value = {
@@ -273,12 +275,10 @@ public interface DeviceManagementService {
value = "Getting the Registration Status of an Android Device",
notes = "Use this REST API to retrieve the registration status of an Android device.",
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(value = {
@@ -328,12 +328,10 @@ public interface DeviceManagementService {
value = "Updating the Registration Details of an Android Device",
notes = "Use this REST API to update the registration details of an Android device.",
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(
@@ -386,11 +384,10 @@ public interface DeviceManagementService {
value = "Unregistering an Android Device",
notes = "Use this REST API to unregister an Android device.",
tags = "Android Device Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/disenroll/android", description = "Disenroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:disenroll")
+ })
}
)
@ApiResponses(value = {
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/DeviceTypeConfigurationService.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/DeviceTypeConfigurationService.java
index 9b005bab7f..9e91213cca 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/DeviceTypeConfigurationService.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/DeviceTypeConfigurationService.java
@@ -24,16 +24,17 @@ import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.Extension;
import io.swagger.annotations.Tag;
import io.swagger.annotations.Api;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Authorization;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ResponseHeader;
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.mdm.services.android.bean.AndroidPlatformConfiguration;
import org.wso2.carbon.mdm.services.android.exception.AndroidAgentException;
+import org.wso2.carbon.mdm.services.android.util.AndroidConstants;
import javax.validation.Valid;
import javax.ws.rs.*;
@@ -61,6 +62,28 @@ import javax.ws.rs.core.Response;
@Path("/configuration")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll Device",
+ description = "Register an Android device",
+ key = "perm:android:enroll",
+ permissions = {"/device-mgt/devices/enroll/android"}
+ ),
+ @Scope(
+ name = "View Configurations",
+ description = "Getting Android Platform Configurations",
+ key = "perm:android:view-configuration",
+ permissions = {"/device-mgt/platform-configurations/view"}
+ ),
+ @Scope(
+ name = "Manage Configurations",
+ description = "Updating Android Platform Configurations",
+ key = "perm:android:manage-configuration",
+ permissions = {"/device-mgt/platform-configurations/manage"}
+ )
+ }
+)
public interface DeviceTypeConfigurationService {
@GET
@@ -71,12 +94,10 @@ public interface DeviceTypeConfigurationService {
notes = "Get the Android platform configuration details using this REST API.",
response = PlatformConfiguration.class,
tags = "Android Configuration Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/platform-configurations/view",
- description = "View Configurations") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:view-configuration")
+ })
}
)
@ApiResponses(value = {
@@ -127,12 +148,10 @@ public interface DeviceTypeConfigurationService {
value = "Updating Android Platform Configurations",
notes = "Update the Android platform configurations using this REST API.",
tags = "Android Configuration Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/platform-configurations/manage",
- description = "Manage Configurations") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:manage-configuration")
+ })
}
)
@ApiResponses(value = {
@@ -184,12 +203,10 @@ public interface DeviceTypeConfigurationService {
"registration process.",
response = String.class,
tags = "Android Configuration Management",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Enroll Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(value = {
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/EventReceiverService.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/EventReceiverService.java
index c2278ffa58..86a6df265c 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/EventReceiverService.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/EventReceiverService.java
@@ -24,15 +24,16 @@ import io.swagger.annotations.ExtensionProperty;
import io.swagger.annotations.Extension;
import io.swagger.annotations.Tag;
import io.swagger.annotations.Api;
-import io.swagger.annotations.AuthorizationScope;
-import io.swagger.annotations.Authorization;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ResponseHeader;
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.mdm.services.android.bean.DeviceState;
import org.wso2.carbon.mdm.services.android.bean.wrapper.EventBeanWrapper;
+import org.wso2.carbon.mdm.services.android.util.AndroidConstants;
import javax.validation.Valid;
import javax.validation.constraints.Size;
@@ -61,6 +62,16 @@ import javax.ws.rs.core.Response;
@Path("/events")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll Device",
+ description = "Register an Android device",
+ key = "perm:android:enroll",
+ permissions = {"/device-mgt/devices/enroll/android"}
+ )
+ }
+)
public interface EventReceiverService {
@POST
@@ -72,12 +83,10 @@ public interface EventReceiverService {
value = "Publishing Events",
notes = "Publish events received by the WSO2 EMM Android client to the WSO2 Data Analytics Server (DAS) using this API.",
tags = "Event Receiver",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Publish Events to DAS") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(
@@ -137,12 +146,10 @@ public interface EventReceiverService {
response = DeviceState.class,
responseContainer = "List",
tags = "Event Receiver",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(scope = "/device-mgt/devices/enroll/android",
- description = "Publish Events to DAS") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = AndroidConstants.SCOPE, value = "perm:android:enroll")
+ })
}
)
@ApiResponses(
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/util/AndroidConstants.java b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidConstants.java
index 62ed8afe05..c1e09b4c06 100644
--- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidConstants.java
+++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.api/src/main/java/org/wso2/carbon/mdm/services/android/util/AndroidConstants.java
@@ -26,6 +26,7 @@ public final class AndroidConstants {
public static final String DEVICE_TYPE_ANDROID = "android";
public static final String HEADER_CONTENT_TYPE = "Content-Type";
public static final String APPLICATION_JSON = "application/json";
+ public static final String SCOPE = "scope";
public final class DeviceProperties {
private DeviceProperties() {
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 53533a75c6..e0ba6a441a 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
@@ -372,5 +372,14 @@
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+
+
+ org.wso2.carbon.devicemgt
+ org.wso2.carbon.apimgt.annotations
+ 2.0.3-SNAPSHOT
+
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/operations/util/Constants.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/operations/util/Constants.java
index b68bca44c3..b20f31baa6 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/operations/util/Constants.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/operations/util/Constants.java
@@ -79,6 +79,8 @@ public class Constants {
public static final String META_FORMAT_INT = "int";
public static final String META_FORMAT_CHARACTER = "chr";
+ public static final String SCOPE = "scope";
+
/**
* SynclML service related constants.
*/
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/ConfigurationMgtService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/ConfigurationMgtService.java
index 1796a637cb..8bb90b1958 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/ConfigurationMgtService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/ConfigurationMgtService.java
@@ -32,9 +32,12 @@ import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ResponseHeader;
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsConfigurationException;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.util.Message;
+import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants;
import javax.jws.WebService;
import javax.ws.rs.*;
@@ -66,8 +69,30 @@ import javax.ws.rs.core.Response;
description = "This carries all the resources related to Windows configurations management functionalities")
@WebService
@Path("/configuration")
-@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+@Produces({"application/json", "application/xml"})
+@Consumes({"application/json", "application/xml"})
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll Device",
+ description = "Register an Windows device",
+ key = "perm:windows:enroll",
+ permissions = {"/device-mgt/devices/enroll/windows"}
+ ),
+ @Scope(
+ name = "View Configurations",
+ description = "Getting Windows Platform Configurations",
+ key = "perm:windows:view-configuration",
+ permissions = {"/device-mgt/platform-configurations/view"}
+ ),
+ @Scope(
+ name = "Manage Configurations",
+ description = "Updating Windows Platform Configurations",
+ key = "perm:windows:manage-configuration",
+ permissions = {"/device-mgt/platform-configurations/manage"}
+ )
+ }
+)
public interface ConfigurationMgtService {
@GET
@@ -78,12 +103,10 @@ public interface ConfigurationMgtService {
notes = "Get the Windows platform configuration details using this REST API.",
response = PlatformConfiguration.class,
tags = "Windows Configuration Management",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(scope = "/device-mgt/platform-configurations/view",
- description = "View Configurations")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:view-configuration")
+ })
}
)
@ApiResponses(value = {
@@ -139,12 +162,10 @@ public interface ConfigurationMgtService {
value = "Updating Windows Platform Configurations",
notes = "Update the Windows platform configurations using this REST API.",
tags = "Windows Configuration Management",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(scope = "/device-mgt/configurations/manage",
- description = "Manage Configurations")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:manage-configuration")
+ })
}
)
@ApiResponses(value = {
@@ -197,12 +218,10 @@ public interface ConfigurationMgtService {
"registration process.",
response = String.class,
tags = "Windows Configuration Management",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(scope = "/device-mgt/devices/enroll/windows",
- description = "Enroll Device")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:enroll")
+ })
}
)
@ApiResponses(value = {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java
index 0b1b0995c6..288378dd92 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/DeviceManagementAdminService.java
@@ -19,9 +19,12 @@
package org.wso2.carbon.device.mgt.mobile.windows.api.services;
import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.Permission;
+
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.common.operation.mgt.Activity;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException;
+import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants;
import javax.jws.WebService;
import javax.ws.rs.Consumes;
@@ -58,9 +61,43 @@ import java.util.List;
@Api(value = "Windows Device Management Administrative Service",
description = "Device management related admin APIs.")
@WebService
-@Path("/operation/admin/devices")
-@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+@Path("/admin/devices")
+@Consumes(MediaType.APPLICATION_JSON)
+@Produces(MediaType.APPLICATION_JSON)
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Lock Device",
+ description = "Adding a Device Lock on Windows devices.",
+ key = "perm:windows:lock-devices",
+ permissions = {"/device-mgt/devices/owning-device/operations/windows/lock"}
+ ),
+ @Scope(
+ name = "Un-enroll Device",
+ description = "Unregister an Windows device",
+ key = "perm:windows:disenroll",
+ permissions = {"/device-mgt/devices/disenroll/windows"}
+ ),
+ @Scope(
+ name = "Factory Reset",
+ description = "Factory Resetting Windows Devices",
+ key = "perm:windows:wipe",
+ permissions = {"/device-mgt/devices/owning-device/operations/windows/wipe"}
+ ),
+ @Scope(
+ name = "Ring Device",
+ description = "Ring Windows devices",
+ key = "perm:windows:ring",
+ permissions = {"/device-mgt/devices/owning-device/operations/windows/ring"}
+ ),
+ @Scope(
+ name = "Lock Reset",
+ description = "Lock reset on Windows devices",
+ key = "perm:windows:lock-reset",
+ permissions = {"/device-mgt/devices/owning-device/operations/windows/lock-reset"}
+ )
+ }
+)
public interface DeviceManagementAdminService {
@POST
@@ -72,13 +109,10 @@ public interface DeviceManagementAdminService {
notes = "Using this API you have the option of Device Windows device.",
response = Activity.class,
tags = "Windows Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/windows/lock",
- description = "Lock Device")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:lock-devices")
+ })
}
)
@ApiResponses(value = {
@@ -134,13 +168,10 @@ public interface DeviceManagementAdminService {
notes = "Dis-enroll on Android devices",
response = Activity.class,
tags = "Windows Device Management Administrative Service.",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(
- scope = "/device-mgt/devices/disenroll/windows",
- description = "Dis-enroll the windows devices ")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:disenroll")
+ })
}
)
@ApiResponses(value = {
@@ -198,13 +229,10 @@ public interface DeviceManagementAdminService {
"to restore them back to the original system.",
response = Activity.class,
tags = "Windows Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/windows/wipe",
- description = "DeviceWipe")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:wipe")
+ })
}
)
@ApiResponses(value = {
@@ -259,13 +287,10 @@ public interface DeviceManagementAdminService {
notes = "Ring Windows devices.",
response = Activity.class,
tags = "Windows Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/windows/ring",
- description = "Ring Device") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:ring")
+ })
}
)
@ApiResponses(value = {
@@ -321,13 +346,10 @@ public interface DeviceManagementAdminService {
notes = "Lock reset on Windows devices.Its use to reset the device pass code",
response = Activity.class,
tags = "Windows Device Management Administrative Service",
- authorizations = {
- @Authorization(
- value="permission",
- scopes = { @AuthorizationScope(
- scope = "/device-mgt/devices/owning-device/operations/windows/lock-reset",
- description = "Lock reset") }
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:lock-reset")
+ })
}
)
@ApiResponses(value = {
diff --git a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/authbst/BSTProvider.java b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/authbst/BSTProvider.java
index 1cea655c4f..7926260f22 100644
--- a/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/authbst/BSTProvider.java
+++ b/components/mobile-plugins/windows-plugin/org.wso2.carbon.device.mgt.mobile.windows.api/src/main/java/org/wso2/carbon/device/mgt/mobile/windows/api/services/authbst/BSTProvider.java
@@ -19,8 +19,11 @@
package org.wso2.carbon.device.mgt.mobile.windows.api.services.authbst;
import io.swagger.annotations.*;
-import org.wso2.carbon.apimgt.annotations.api.Permission;
+
+import org.wso2.carbon.apimgt.annotations.api.Scope;
+import org.wso2.carbon.apimgt.annotations.api.Scopes;
import org.wso2.carbon.device.mgt.mobile.windows.api.common.exceptions.WindowsDeviceEnrolmentException;
+import org.wso2.carbon.device.mgt.mobile.windows.api.operations.util.Constants;
import org.wso2.carbon.device.mgt.mobile.windows.api.services.authbst.beans.Credentials;
import javax.jws.WebService;
@@ -57,12 +60,21 @@ import javax.ws.rs.core.Response;
@Path("/bst")
@Produces({"application/json", "application/xml"})
@Consumes({"application/json", "application/xml"})
+@Scopes(
+ scopes = {
+ @Scope(
+ name = "Enroll Device",
+ description = "Register Windows device",
+ key = "perm:windows:enroll",
+ permissions = {"/device-mgt/devices/enroll/windows"}
+ )
+ }
+)
public interface BSTProvider {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/authentication")
- @Permission(name = "Enroll Device", permission = "/device-mgt/devices/enroll/windows")
@ApiOperation(
produces = MediaType.APPLICATION_JSON,
consumes = MediaType.APPLICATION_JSON,
@@ -70,13 +82,10 @@ public interface BSTProvider {
value = "Getting Binary security token.",
notes = "Using this API to fetch Binary security token to call window enrollment and policy endpoints.",
tags = "BST Provider",
- authorizations = {
- @Authorization(
- value = "permission",
- scopes = {@AuthorizationScope(scope = "/device-mgt/devices/enroll/windows",
- description = "Getting Binary security token for Windows enrollment " +
- "and policy endpoints.")}
- )
+ extensions = {
+ @Extension(properties = {
+ @ExtensionProperty(name = Constants.SCOPE, value = "perm:windows:enroll")
+ })
}
)
@ApiResponses(
diff --git a/pom.xml b/pom.xml
index 096152ebf2..4dc0057f03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1217,7 +1217,7 @@
1.7
- 4.4.10
+ 4.4.11
[4.4.0, 4.5.0)
1.5.4
@@ -1267,7 +1267,7 @@
5.6.89
- 5.2.33
+ 5.3.1
[5.2.0, 6.0.0)
@@ -1280,7 +1280,7 @@
4.7.0
- 6.1.2
+ 6.1.35
3.0.4.wso2v1