diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml
index 6d9ddcce..3f0f6dc2 100644
--- a/modules/distribution/pom.xml
+++ b/modules/distribution/pom.xml
@@ -673,36 +673,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -718,25 +699,16 @@
-
-
-
-
-
-
-
-
-
@@ -764,24 +736,16 @@
-
-
-
-
-
-
-
-
diff --git a/modules/distribution/src/assembly/bin.xml b/modules/distribution/src/assembly/bin.xml
index f2656c6e..b146f348 100755
--- a/modules/distribution/src/assembly/bin.xml
+++ b/modules/distribution/src/assembly/bin.xml
@@ -460,7 +460,7 @@
-
+
../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/wso2/deployment/server/synapse-configs/default/api/
@@ -1493,20 +1493,6 @@
755
-
- target/webapp-temp/api-application-registration.war
-
- ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps
-
- 755
-
-
- target/webapp-temp/api#scep-mgt#v1.0.war
-
- ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps
-
- 755
-
target/webapp-temp/client-registration#v0.11.war
@@ -1514,20 +1500,6 @@
755
-
- target/webapp-temp/secured-websocket.war
-
- ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps
-
- 755
-
-
- target/webapp-temp/api#certificate-mgt#v1.0.war
-
- ${pom.artifactId}-${pom.version}/repository/deployment/server/webapps
-
- 755
-
target/webapp-temp/api#identity#entitlement.war
@@ -1602,6 +1574,14 @@
${pom.artifactId}-${pom.version}/conf/
+
+
+ ../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/social.xml
+
+
+ ${pom.artifactId}-${pom.version}/conf/
+
+
../p2-profile/iot-core-profile/target/wso2carbon-core-${carbon.kernel.version}/repository/conf/identity/entitlement.properties
diff --git a/modules/distribution/src/core/plugins/plugins-deployer.xml b/modules/distribution/src/core/plugins/plugins-deployer.xml
index e4a8534d..7c51e584 100644
--- a/modules/distribution/src/core/plugins/plugins-deployer.xml
+++ b/modules/distribution/src/core/plugins/plugins-deployer.xml
@@ -207,6 +207,6 @@
- 3.0.27
+ 3.0.30
diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml
deleted file mode 100644
index 8facd4b1..00000000
--- a/modules/distribution/src/core/resources/web-apps/web-xml/api#certificate-mgt#v1.0/web.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
- Certificate-Webapp
-
- JAX-WS/JAX-RS Certificate Management Endpoint
- JAX-WS/JAX-RS Servlet
- CXFServlet
-
- org.apache.cxf.transport.servlet.CXFServlet
-
-
- swagger.security.filter
- ApiAuthorizationFilterImpl
-
- 1
-
-
- CXFServlet
- /*
-
-
- 60
-
-
-
- isAdminService
- false
-
-
- doAuthentication
- true
-
-
-
-
- managed-api-enabled
- true
-
-
- managed-api-owner
- admin
-
-
-
-
- CertificateMgt-Admin
- /*
-
-
- CONFIDENTIAL
-
-
-
-
- ApiOriginFilter
- org.wso2.carbon.certificate.mgt.cert.jaxrs.api.util.ApiOriginFilter
-
-
-
- HttpHeaderSecurityFilter
- org.apache.catalina.filters.HttpHeaderSecurityFilter
-
- hstsEnabled
- false
-
-
-
-
- ContentTypeBasedCachePreventionFilter
- org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter
-
- patterns
- text/html" ,application/json" ,text/plain
-
-
- filterAction
- enforce
-
-
- httpHeaders
- Cache-Control: no-store, no-cache, must-revalidate, private
-
-
-
-
- HttpHeaderSecurityFilter
- /*
-
-
-
- ContentTypeBasedCachePreventionFilter
- /*
-
-
-
- ApiOriginFilter
- /*
-
-
-
-
diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml
deleted file mode 100644
index 0dfb469c..00000000
--- a/modules/distribution/src/core/resources/web-apps/web-xml/api#scep-mgt#v1.0/web.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
- Certificate-Webapp
-
- JAX-WS/JAX-RS Certificate Management Endpoint
- JAX-WS/JAX-RS Servlet
- CXFServlet
-
- org.apache.cxf.transport.servlet.CXFServlet
-
-
-
- CXFServlet
- /*
-
-
- 60
-
-
-
- isAdminService
- false
-
-
- doAuthentication
- true
-
-
-
-
- managed-api-enabled
- true
-
-
- managed-api-owner
- admin
-
-
-
- HttpHeaderSecurityFilter
- org.apache.catalina.filters.HttpHeaderSecurityFilter
-
- hstsEnabled
- false
-
-
-
-
- ContentTypeBasedCachePreventionFilter
- org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter
-
- patterns
- text/html" ,application/json" ,text/plain
-
-
- filterAction
- enforce
-
-
- httpHeaders
- Cache-Control: no-store, no-cache, must-revalidate, private
-
-
-
-
- HttpHeaderSecurityFilter
- /*
-
-
-
- ContentTypeBasedCachePreventionFilter
- /*
-
-
-
diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml
deleted file mode 100644
index 0e2a3b23..00000000
--- a/modules/distribution/src/core/resources/web-apps/web-xml/api-application-registration/web.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
- WSO2 IoT Server
- WSO2 IoT Server
-
-
- CXFServlet
- org.apache.cxf.transport.servlet.CXFServlet
- 1
-
-
-
- CXFServlet
- /*
-
-
- isAdminService
- false
-
-
- doAuthentication
- true
-
-
-
-
- managed-api-enabled
- true
-
-
- managed-api-owner
- admin
-
-
-
- ApiPermissionFilter
- org.wso2.carbon.apimgt.application.extension.api.filter.ApiPermissionFilter
-
-
-
- HttpHeaderSecurityFilter
- org.apache.catalina.filters.HttpHeaderSecurityFilter
-
- hstsEnabled
- false
-
-
-
-
- ContentTypeBasedCachePreventionFilter
- org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter
-
- patterns
- text/html" ,application/json" ,text/plain
-
-
- filterAction
- enforce
-
-
- httpHeaders
- Cache-Control: no-store, no-cache, must-revalidate, private
-
-
-
-
- HttpHeaderSecurityFilter
- /*
-
-
-
- ContentTypeBasedCachePreventionFilter
- /*
-
-
-
- ApiPermissionFilter
- /*
-
-
-
diff --git a/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml b/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml
deleted file mode 100644
index ce51b848..00000000
--- a/modules/distribution/src/core/resources/web-apps/web-xml/secured-websocket/web.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
- Output WebSocket
-
-
- HttpHeaderSecurityFilter
- org.apache.catalina.filters.HttpHeaderSecurityFilter
-
- hstsEnabled
- false
-
-
-
-
- ContentTypeBasedCachePreventionFilter
- org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter
-
- patterns
- text/html" ,application/json" ,text/plain
-
-
- filterAction
- enforce
-
-
- httpHeaders
- Cache-Control: no-store, no-cache, must-revalidate, private
-
-
-
-
- HttpHeaderSecurityFilter
- /*
-
-
-
- ContentTypeBasedCachePreventionFilter
- /*
-
-
-
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java
index b8419a1e..205b5382 100644
--- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java
@@ -36,9 +36,8 @@ public class AndroidDeviceManagementAPIJmeterTestCase {
@Test()
public void permutationTest() throws AutomationFrameworkException {
URL url = Thread.currentThread().getContextClassLoader().getResource(
- "jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx");
- JMeterTest script = new JMeterTest(
- new File(url.getPath()));
+ "jmeter-scripts" + File.separator + "AndroidDeviceManagementAPIAdditionalPermutations.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
JMeterTestManager manager = new JMeterTestManager();
log.info("Running permutation test using jmeter scripts");
manager.runTest(script);
@@ -46,13 +45,11 @@ public class AndroidDeviceManagementAPIJmeterTestCase {
@Test(dependsOnMethods = {"permutationTest"})
public void listServices() throws AutomationFrameworkException {
- URL url = Thread.currentThread().getContextClassLoader().getResource(
- "jmeter-scripts/NewAndroidDeviceManagementAPI.jmx");
- JMeterTest script = new JMeterTest(
- new File(url.getPath()));
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource("jmeter-scripts" + File.separator + "NewAndroidDeviceManagementAPI.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
JMeterTestManager manager = new JMeterTestManager();
log.info("Running API service test using jmeter scripts");
manager.runTest(script);
}
-
}
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java
new file mode 100644
index 00000000..7d973685
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017, 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.iot.integration.jmeter;
+
+import org.testng.annotations.Test;
+import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTest;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * This is to test the Device Management API scenarios, which gives a bad response.
+ */
+public class DeviceManagementAPINegativeTestCase {
+
+ @Test(description = "This test case tests the response when the APIs are called with invalid payloads and without"
+ + " required parameters")
+ public void negativeTests() throws AutomationFrameworkException {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource("jmeter-scripts" + File.separator + "AndroidDeviceManagementAPI_Negative_Tests.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
+ JMeterTestManager manager = new JMeterTestManager();
+ manager.runTest(script);
+ }
+}
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java
new file mode 100644
index 00000000..0d4bb257
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2017, 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.iot.integration.jmeter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.annotations.Test;
+import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTest;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * This test case is used to run the jmeter test cases related with Group Management APIs.
+ */
+public class GroupManagementJMeterTestCase {
+ private static Log log = LogFactory.getLog(GroupManagementJMeterTestCase.class);
+
+ @Test(description = "This test case tests the Group Management APIs")
+ public void GroupManagementTest() throws AutomationFrameworkException {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource("jmeter-scripts" + File.separator + "GroupManagementAPI.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
+ JMeterTestManager manager = new JMeterTestManager();
+ log.info("Running group management api test cases using jmeter scripts");
+ manager.runTest(script);
+ }
+}
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java
new file mode 100644
index 00000000..ffe40263
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/NotificationManagementAPIJMeterTestCase.java
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2017, 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.iot.integration.jmeter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.annotations.Test;
+import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTest;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * This class tests the Notification Management APIs
+ */
+public class NotificationManagementAPIJMeterTestCase {
+ private static Log log = LogFactory.getLog(NotificationManagementAPIJMeterTestCase.class);
+
+ @Test(description = "This test case tests the Notification Management APIs")
+ public void NotificationManagementTest() throws AutomationFrameworkException {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource("jmeter-scripts" + File.separator + "NotificationManagementAPI.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
+ JMeterTestManager manager = new JMeterTestManager();
+ log.info("Running notification management api test cases using jmeter scripts");
+ manager.runTest(script);
+ }
+}
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/PolicyManagementJMeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/PolicyManagementJMeterTestCase.java
new file mode 100644
index 00000000..f06d900c
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/PolicyManagementJMeterTestCase.java
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2017, 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.iot.integration.jmeter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.testng.annotations.Test;
+import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTest;
+import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager;
+
+import java.io.File;
+import java.net.URL;
+
+/**
+ * This test case is used to run the jmeter test cases related with Policy Management APIs.
+ */
+public class PolicyManagementJMeterTestCase {
+ private static Log log = LogFactory.getLog(PolicyManagementJMeterTestCase.class);
+
+ @Test(description = "This test case tests the Policy Management APIs")
+ public void PolicyManagementTest() throws AutomationFrameworkException {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource("jmeter-scripts" + File.separator + "PolicyManagementAPI.jmx");
+ JMeterTest script = new JMeterTest(new File(url.getPath()));
+ JMeterTestManager manager = new JMeterTestManager();
+ log.info("Running policy management api test cases using jmeter scripts");
+ manager.runTest(script);
+ }
+}
diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java
index 8cb8bb60..395c7a26 100644
--- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java
+++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/mobileDevice/MobileDeviceManagement.java
@@ -53,7 +53,7 @@ public class MobileDeviceManagement extends TestBase {
@Test(description = "Test getting devices")
public void testViewDevices() throws Exception {
- int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 1 : 23;
+ int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 3 : 23;
HttpResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT);
Assert.assertEquals(HttpStatus.SC_OK, response.getResponseCode());
JsonObject devices = new JsonParser().parse(response.getData()).getAsJsonObject();
@@ -62,7 +62,7 @@ public class MobileDeviceManagement extends TestBase {
@Test(description = "Test getting devices")
public void testGetUserDevices() throws Exception {
- int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 1 : 13;
+ int expectedCount = this.userMode == TestUserMode.TENANT_ADMIN ? 3 : 13;
HttpResponse response = client.get(Constants.MobileDeviceManagement.GET_ALL_DEVICES_ENDPOINT
+ Constants.MobileDeviceManagement.USER_DEVICE_ENDPOINT);
Assert.assertEquals(HttpStatus.SC_OK, response.getResponseCode());
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx
index c99af367..34738b5d 100644
--- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx
@@ -1,5 +1,5 @@
-
+
@@ -45,12 +45,12 @@
https_port
- 9443
+ 8243
=
http_port
- 9763
+ 8280
=
@@ -60,7 +60,12 @@
token_ep_port
- 9763
+ 8280
+ =
+
+
+ https_management_port
+ 9443
=
@@ -108,7 +113,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -136,7 +141,7 @@
- https://${host}:${https_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://common.mgt.user.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
@@ -162,7 +167,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -189,7 +194,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -217,7 +222,7 @@
- https://${host}:${https_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://common.mgt.user.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
@@ -243,7 +248,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -264,7 +269,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -292,7 +297,7 @@
- https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
@@ -312,12 +317,10 @@
false
{
- "callbackUrl":"www.google.lk",
- "clientName":"app_${randAppNum}",
- "tokenScope":"Production",
- "owner":"user111",
- "grantType":"password refresh_token",
- "saasApp":true
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
}
=
@@ -329,7 +332,7 @@
https
- /api/appm/oauth/v1.0/register
+ /api-application-registration/register
POST
true
false
@@ -348,7 +351,7 @@
Host
- 10.100.1.90:9763
+ localhost:9763
Content-Type
@@ -360,7 +363,7 @@
false
clientId
- "clientId":"(.+?)"
+ "client_id":"(.+?)"
$1$
0
1
@@ -369,7 +372,7 @@
false
clientSecret
- "clientSecret":"(.+?)"
+ "client_secret":"(.+?)"
$1$
0
1
@@ -416,7 +419,7 @@ vars.put("base64encodedId",new String(encryptedId));
true
- appm:subscribe device:view activity:view device:android:operation:change-lock device:admin:view configuration:view device:android:enroll user:view
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
=
true
scope
@@ -429,7 +432,7 @@ vars.put("base64encodedId",new String(encryptedId));
https
- /oauth2/token
+ /token
POST
true
false
@@ -626,12 +629,10 @@ vars.put("base64encodedId",new String(encryptedId));
false
{
- "callbackUrl":"www.google.lk",
- "clientName":"appp_${randAppNum}",
- "tokenScope":"Production",
- "owner":"admin",
- "grantType":"password refresh_token",
- "saasApp":true
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
}
=
@@ -643,7 +644,7 @@ vars.put("base64encodedId",new String(encryptedId));
https
- /api/appm/oauth/v1.0/register
+ /api-application-registration/register
POST
true
false
@@ -662,7 +663,7 @@ vars.put("base64encodedId",new String(encryptedId));
Host
- 10.100.1.90:9763
+ localhost:9763
Content-Type
@@ -674,7 +675,7 @@ vars.put("base64encodedId",new String(encryptedId));
false
clientId
- "clientId":"(.+?)"
+ "client_id":"(.+?)"
$1$
0
1
@@ -683,7 +684,7 @@ vars.put("base64encodedId",new String(encryptedId));
false
clientSecret
- "clientSecret":"(.+?)"
+ "client_secret":"(.+?)"
$1$
0
1
@@ -730,7 +731,7 @@ vars.put("base64encodedId",new String(encryptedId));
true
- appm:subscribe device:view activity:view device:android:operation:change-lock device:admin:view configuration:view device:android:enroll user:view
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
=
true
scope
@@ -743,7 +744,7 @@ vars.put("base64encodedId",new String(encryptedId));
https
- /oauth2/token
+ /token
POST
true
false
@@ -12424,9 +12425,9 @@ vars.put("base64encodedId",new String(encryptedId));
-
+
Results
- false
+ true
false
false
false
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx
new file mode 100644
index 00000000..1e5b70dd
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx
@@ -0,0 +1,4202 @@
+
+
+
+
+ The script should be run against a fresh pack.
+ false
+ false
+
+
+
+
+
+
+
+ 9999
+ 100
+
+ false
+
+ randAppNum
+
+
+
+
+
+ host
+ localhost
+ =
+
+
+ https_port
+ 8243
+ =
+
+
+ http_port
+ 8280
+ =
+
+
+ token_ep_host
+ localhost
+ =
+
+
+ token_ep_port
+ 8280
+ =
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ 1465464058000
+ 1465464058000
+ false
+
+
+
+
+
+ 1
+
+ 1
+ DeviceID
+ #
+ false
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic YWRtaW46YWRtaW4=
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ username
+
+
+ false
+ admin
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ username
+
+
+ false
+ admin
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ true
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":10${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f870f390352a3${DeviceID}",
+ "enrolmentInfo":{
+ "id":10${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S8",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+ 25
+
+
+
+ 1
+
+ 1
+ DeviceIDL
+ #
+ false
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":10${DeviceIDL},
+ "name":"androiddevicep${DeviceIDL}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f860f390352a3${DeviceIDL}",
+ "enrolmentInfo":{
+ "id":10${DeviceIDL},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S8",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+
+ false
+ 0
+ =
+ true
+ offset
+
+
+ false
+ 1
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "serial": "qwe12-23fdf-2s332-53fv3-sfs33",
+ "pem": "
+MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV
+BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD
+VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x
+FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz
+MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT
+B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj
+aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B
+cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4
+L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A
+gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh
+k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy
+xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w
+HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx
+tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT
+B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf
+MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS
+YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB
+AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl
+rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo
+fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV
+xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh
+oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn
+GEL4ZNjZ+jnwSkzwBU5vh/QS",
+ "tenantId": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ 3
+ =
+ true
+ offset
+
+
+ false
+ 2
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs33
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs35
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ 0
+ =
+ true
+ offset
+
+
+ false
+ 100000
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs33
+ DELETE
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs34
+ DELETE
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ 0
+ =
+ true
+ offset
+
+
+ false
+ 100000
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f760f390352a31
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f760f390352a31/applications
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f760f390352a31/effective-policy
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f760f390352a31/operations
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 500
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f760f390352a31/compliance-data
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":101,
+ "name":"androiddevice1000${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f860f390352a31",
+ "enrolmentInfo":{
+ "id":101,
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ }
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S8",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+ A json parse error may get thrown on server side for this test. This is expected.
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1012,
+ "name":"androiddevice10001122",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f760f390352a31",
+ "enrolmentInfo":{
+ "id":1012,
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature2",
+ "description":"this is the new feature 2",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S8",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices/d24f760f390352a31
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "id": 10,
+ "platform": "android",
+ "category": "Business",
+ "name": "Graphical",
+ "locationUrl": "string",
+ "imageUrl": "string",
+ "version": "1.0.0",
+ "type": "string",
+ "appProperties": {},
+ "applicationIdentifier": "string",
+ "memoryUsage": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f760f390352a31/applications
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 500
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices/d24f760f390352a31/status
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/applications
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "lockCode": "0000"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/change-lock-code
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "lockCod": "0000"
+ },
+ "deviceIDs": [
+ "d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/change-lock-code
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+ Changing the Lock Code on Android Device with Invalid payload valid dev ID
+
+
+
+
+ 400
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/clear-password
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "ssid": "string",
+ "password": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/configure-wifi
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "ssid": 1,
+ "password": 24
+ },
+ "deviceIDs": [
+ "d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/configure-wifi
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+ Configuring Wi-Fi on Android Device with invalid payload data types
+
+
+
+
+ 400
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "enabled": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/control-camera
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "enabled": 59
+ },
+ "deviceIDs": [
+ "d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/control-camera
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+ Enabling or Disabling the Camera with Invalid Payload data types
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "encrypted": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/encrypt-storage
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "encrypt": 78
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/encrypt-storage
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [1234567890]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ],
+ "operation": {
+ "message": "string",
+ "hardLockEnabled": false
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/lock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f860f390352a31"
+ ],
+ "operation": {
+ "message": "string",
+ "hardLockEnabled": 56
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/lock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/mute
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/reboot
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/ring
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ],
+ "operation": {
+ "messageText": "string",
+ "messageTitle": "string"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/send-notification
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "maxFailedAttempts": 0,
+ "minLength": 0,
+ "pinHistory": 0,
+ "minComplexChars": 0,
+ "maxPINAgeInDays": 0,
+ "requireAlphanumeric": false,
+ "allowSimple": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-password-policy
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "identity": "string",
+ "title": "string",
+ "type": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-webclip
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/unlock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "pin": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 400
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/applications
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "lockCode": "0000"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/change-lock-code
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f750f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/clear-password
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "ssid": "string",
+ "password": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/configure-wifi
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "enabled": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/control-camera
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "encrypted": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/encrypt-storage
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [1234567890,"d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ],
+ "operation": {
+ "message": "string",
+ "hardLockEnabled": false
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/lock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/reboot
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/ring
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ],
+ "operation": {
+ "messageText": "string",
+ "messageTitle": "string"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/send-notification
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "maxFailedAttempts": 0,
+ "minLength": 0,
+ "pinHistory": 0,
+ "minComplexChars": 0,
+ "maxPINAgeInDays": 0,
+ "requireAlphanumeric": false,
+ "allowSimple": false
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-password-policy
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "identity": "string",
+ "title": "string",
+ "type": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-webclip
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/unlock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "pin": "string"
+ },
+ "deviceIDs": [
+ "d24f760f390352a31","d24f860f390352a31"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f760f390352a31","d24f860f390352a31"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/mute
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+ assertion failures will be marked with a Response Assertion : Test failed msg.
+
+
+
+
+
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx
new file mode 100644
index 00000000..cac784a5
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx
@@ -0,0 +1,4219 @@
+
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+ 9999
+ 100
+
+ false
+
+ randAppNum
+
+
+
+
+
+ host
+ localhost
+ =
+
+
+ https_port
+ 8243
+ =
+
+
+ http_port
+ 8280
+ =
+
+
+ token_ep_host
+ localhost
+ =
+
+
+ token_ep_port
+ 8280
+ =
+
+
+ group_name
+ Group 2
+ =
+
+
+ new_group_name
+ New Group
+ =
+
+
+ role_name
+ group_sharing
+ =
+
+
+ DeviceID
+ 1
+ =
+
+
+ DeviceIdentifier
+ group_device
+ =
+
+
+ tenant_user_name
+ admin
+ Name of Tenant
+ =
+
+
+ domain_name
+ wso2.com
+ Name of Domain
+ =
+
+
+ password
+ admin
+ Password
+ =
+
+
+ email
+ abc@wso2.com
+ Email
+ =
+
+
+ firstName
+ firstName
+ First Name
+ =
+
+
+ lastName
+ lastName
+ Last Name
+ =
+
+
+ usagePlan
+ Demo
+ Usage Plan
+ =
+
+
+ createdDate
+ 2013-02-22T08:22:35+05:30
+ Created Date
+ =
+
+
+ management_https_port
+ 9443
+ Port for carbon management console
+ =
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+
+ 1342532280000
+ 1342532280000
+ false
+
+
+
+
+
+
+ false
+ rfc2109
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:login>
+ <!--Optional:-->
+ <aut:username>admin</aut:username>
+ <!--Optional:-->
+ <aut:password>admin</aut:password>
+ <!--Optional:-->
+ <aut:remoteAddress>127.0.0.1</aut:remoteAddress>
+ </aut:login>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:login
+ true
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:getTenant>
+ <!--Optional:-->
+ <ser:tenantDomain>${domain_name}</ser:tenantDomain>
+ </ser:getTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:getTenant
+ true
+ false
+
+
+
+ undefined
+ tenant_exists
+ //*[local-name()='active']/text()
+ false
+ false
+ true
+ tenant_exists
+
+
+
+ false
+ true
+ true
+ false
+
+
+
+
+ ${tenant_exists}==false
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:addTenant>
+ <!--Optional:-->
+ <ser:tenantInfoBean>
+ <!--Optional:-->
+ <xsd:active>1</xsd:active>
+ <!--Optional:-->
+ <xsd:admin>${tenant_user_name}</xsd:admin>
+ <!--Optional:-->
+ <xsd:adminPassword>${password}</xsd:adminPassword>
+ <!--Optional:-->
+ <xsd:createdDate>${createdDate}</xsd:createdDate>
+ <!--Optional:-->
+ <xsd:email>${email}</xsd:email>
+ <!--Optional:-->
+ <xsd:firstname>${firstName}</xsd:firstname>
+ <!--Optional:-->
+ <xsd:lastname>${lastName}</xsd:lastname>
+ <!--Optional:-->
+ <xsd:tenantDomain>${domain_name}</xsd:tenantDomain>
+ <!--Optional:-->
+ <xsd:tenantId>0</xsd:tenantId>
+ <!--Optional:-->
+ <xsd:usagePlan>${usagePlan}</xsd:usagePlan>
+ </ser:tenantInfoBean>
+ </ser:addTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:addTenant
+ true
+ false
+
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:logout/>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:logout
+ true
+ false
+
+
+
+
+ 202
+
+ Assertion.response_code
+ false
+ 1
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+
+
+ /home/ace/Desktop/results_multi_user_multi_tenancy.jtl
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ 1465464058000
+ 1465464058000
+ false
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic YWRtaW46YWRtaW4=
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ username
+
+
+ false
+ admin
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 0
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : 2,
+ "description" : "This is a test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : 2,
+ "description" : "This is a test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 409
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "name":"Group 2"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ groupId
+ "id":(.+?)
+ $1$
+ no_token
+ 1
+
+
+
+
+
+
+
+ false
+ false_group
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "deviceGroups":[]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+ true
+ Group 2
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "name":"Group 2"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+ false
+ dadad
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "deviceGroups":[]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "description":"This is a test group"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/3333
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/hello
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : "${groupId}",
+ "description" : "This is a new test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/groups/id/10000
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 409
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : "${groupId}",
+ "description" : "This is a new test group",
+ "name" : "${new_group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "description":"This is a new test group"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "roleName": "${role_name}",
+ "users" : ["admin"]
+}
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/roles
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ ["${role_name}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/share
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/roles
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ "${role_name}"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [{"id":"${DeviceIdentifier}", "type":"android"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/add
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 1
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+
+
+
+ false
+ ${DeviceIdentifier}
+ =
+ true
+ deviceId
+
+
+ false
+ android
+ =
+ true
+ deviceType
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/device
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "${new_group_name}"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceGroupIds" : [${groupId}],
+ "deviceIdentifier" : {"id":"${DeviceIdentifier}", "type":"android"}
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/device/assign
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/admin/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+ false
+ groupCount
+ "count":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/admin/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ ${groupCount}
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+ [{"id":"${DeviceIdentifier}", "type":"android"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/remove
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ DELETE
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+ 1000
+
+
+
+
+
+ tenant_user_name,domain_name,password
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name") ;
+String password= vars.get("password");
+String toEncode = tenant_user + ":" + password;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("encodedUserPassword","Basic " + new String(encryptedId));
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_hello",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ ${encodedUserPassword}
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ ${tenant_user_name}@${domain_name}
+ =
+ true
+ username
+
+
+ false
+ ${password}
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 0
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : 2,
+ "description" : "This is a test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : 2,
+ "description" : "This is a test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 409
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "name":"Group 2"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ groupId
+ "id":(.+?)
+ $1$
+ no_token
+ 1
+
+
+
+
+
+
+
+ false
+ false_group
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "deviceGroups":[]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+ true
+ Group 2
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "name":"Group 2"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+ false
+ dadad
+ =
+ true
+ name
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "deviceGroups":[]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 1
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "description":"This is a test group"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/3333
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/hello
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : "${groupId}",
+ "description" : "This is a new test group",
+ "name" : "${group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/groups/id/10000
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 409
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id" : "${groupId}",
+ "description" : "This is a new test group",
+ "name" : "${new_group_name}"
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "description":"This is a new test group"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "roleName": "${role_name}",
+ "users" : ["admin"]
+}
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/roles
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ ["${role_name}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/share
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/roles
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ "${role_name}"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [{"id":"${DeviceIdentifier}", "type":"android"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/add
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ 1
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+
+
+
+ false
+ ${DeviceIdentifier}
+ =
+ true
+ deviceId
+
+
+ false
+ android
+ =
+ true
+ deviceType
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/device
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "${new_group_name}"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceGroupIds" : [${groupId}],
+ "deviceIdentifier" : {"id":"${DeviceIdentifier}", "type":"android"}
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/device/assign
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/admin/groups
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+ false
+ groupCount
+ "count":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/admin/groups/count
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ ${groupCount}
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+ [{"id":"${DeviceIdentifier}", "type":"android"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}/devices/remove
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/groups/id/${groupId}
+ DELETE
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 8
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ Results
+ true
+ false
+ true
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx
index 7d04c655..1bc60a8e 100644
--- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NewAndroidDeviceManagementAPI.jmx
@@ -63,9 +63,253 @@
8280
=
+
+ tenant_user_name
+ admin
+ Name of Tenant
+ =
+
+
+ domain_name
+ wso2.com
+ Name of Domain
+ =
+
+
+ password
+ admin
+ Password
+ =
+
+
+ email
+ abc@wso2.com
+ Email
+ =
+
+
+ firstName
+ firstName
+ First Name
+ =
+
+
+ lastName
+ lastName
+ Last Name
+ =
+
+
+ usagePlan
+ Demo
+ Usage Plan
+ =
+
+
+ createdDate
+ 2013-02-22T08:22:35+05:30
+ Created Date
+ =
+
+
+ management_https_port
+ 9443
+ Port for carbon management console
+ =
+
+
+ continue
+
+ false
+ 1
+
+ 1
+
+ 1342532280000
+ 1342532280000
+ false
+
+
+
+
+
+
+ false
+ rfc2109
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:login>
+ <!--Optional:-->
+ <aut:username>admin</aut:username>
+ <!--Optional:-->
+ <aut:password>admin</aut:password>
+ <!--Optional:-->
+ <aut:remoteAddress>127.0.0.1</aut:remoteAddress>
+ </aut:login>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:login
+ true
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:getTenant>
+ <!--Optional:-->
+ <ser:tenantDomain>${domain_name}</ser:tenantDomain>
+ </ser:getTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:getTenant
+ true
+ false
+
+
+
+ undefined
+ tenant_exists
+ //*[local-name()='active']/text()
+ false
+ false
+ true
+ tenant_exists
+
+
+
+ false
+ true
+ true
+ false
+
+
+
+
+ ${tenant_exists}==false
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:addTenant>
+ <!--Optional:-->
+ <ser:tenantInfoBean>
+ <!--Optional:-->
+ <xsd:active>1</xsd:active>
+ <!--Optional:-->
+ <xsd:admin>${tenant_user_name}</xsd:admin>
+ <!--Optional:-->
+ <xsd:adminPassword>${password}</xsd:adminPassword>
+ <!--Optional:-->
+ <xsd:createdDate>${createdDate}</xsd:createdDate>
+ <!--Optional:-->
+ <xsd:email>${email}</xsd:email>
+ <!--Optional:-->
+ <xsd:firstname>${firstName}</xsd:firstname>
+ <!--Optional:-->
+ <xsd:lastname>${lastName}</xsd:lastname>
+ <!--Optional:-->
+ <xsd:tenantDomain>${domain_name}</xsd:tenantDomain>
+ <!--Optional:-->
+ <xsd:tenantId>0</xsd:tenantId>
+ <!--Optional:-->
+ <xsd:usagePlan>${usagePlan}</xsd:usagePlan>
+ </ser:tenantInfoBean>
+ </ser:addTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:addTenant
+ true
+ false
+
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:logout/>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:logout
+ true
+ false
+
+
+
+
+ 202
+
+ Assertion.response_code
+ false
+ 1
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+
+
+ /home/ace/Desktop/results_multi_user_multi_tenancy.jtl
+
+
+
continue
@@ -667,6 +911,85 @@ GEL4ZNjZ+jnwSkzwBU5vh/QS",
+
+ true
+
+
+
+ false
+ {
+ "serial": "qwe12-23fdf-2s332-53fv3-sfs33",
+ "pem": "
+MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV
+BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD
+VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x
+FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz
+MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT
+B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj
+aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B
+cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4
+L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A
+gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh
+k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy
+xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w
+HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx
+tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT
+B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf
+MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS
+YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB
+AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl
+rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo
+fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV
+xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh
+oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn
+GEL4ZNjZ+jnwSkzwBU5vh/QS",
+ "tenantId": 0
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/verify/android
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ "invalid"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
@@ -4243,6 +4566,4275 @@ GEL4ZNjZ+jnwSkzwBU5vh/QS",
1000
+
+
+ tenant_user_name,domain_name,password
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name");
+String password= vars.get("password");
+String toEncode = tenant_user + ":" + password;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("encodedUserPassword","Basic " + new String(encryptedId));
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ ${encodedUserPassword}
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ ${tenant_user_name}@${domain_name}
+ =
+ true
+ username
+
+
+ false
+ ${password}
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":10${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f870f390352a4${DeviceID}",
+ "enrolmentInfo":{
+ "id":10${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ 0
+ =
+ true
+ offset
+
+
+ false
+ 1
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "serial": "qwe12-23fdf-2s332-53fv3-sfs33",
+ "pem": "
+MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV
+BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD
+VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x
+FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz
+MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT
+B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj
+aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B
+cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4
+L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A
+gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh
+k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy
+xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w
+HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx
+tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT
+B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf
+MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS
+YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB
+AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl
+rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo
+fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV
+xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh
+oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn
+GEL4ZNjZ+jnwSkzwBU5vh/QS",
+ "tenantId": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ 0
+ =
+ true
+ offset
+
+
+ false
+ 1
+ =
+ true
+ limit
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/18022362098305316308
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "serial": "qwe12-23fdf-2s332-53fv3-sfs33",
+ "pem": "
+MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV
+BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD
+VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x
+FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz
+MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT
+B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj
+aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B
+cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4
+L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A
+gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh
+k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy
+xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w
+HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx
+tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT
+B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf
+MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS
+YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB
+AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl
+rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo
+fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV
+xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh
+oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn
+GEL4ZNjZ+jnwSkzwBU5vh/QS",
+ "tenantId": 0
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/verify/android
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ "invalid"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates/18022362098305316308
+ DELETE
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/certificate-mgt/v1.0/admin/certificates
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/configuration
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "type": "android",
+ "configuration": [
+ {
+ "name": "notifierType",
+ "value": "1",
+ "contentType": "text"
+ },
+ {
+ "name": "notifierFrequency",
+ "value": "500000",
+ "contentType": "text"
+ },
+ {
+ "name": "androidEula",
+ "value": "This End User License Agreement is Eula.",
+ "contentType": "text"
+ }
+ ]
+ }
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/configuration
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/configuration
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "conditions": [
+ {
+ "key": "deviceIdentifier",
+ "value": "d24f870f390352a4${DeviceID}",
+ "operator": "=",
+ "state": "AND"
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/search-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/applications
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/effective-policy
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/features
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ owner
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/operations
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/android/d24f870f390352a4${DeviceID}/compliance-data
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/devices/user-devices
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/activities
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+ false
+ activityId
+ "activityId":"(.+?)"
+ $1$
+ 1
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/activities/${activityId}
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/admin/devices
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ 401
+
+ Assertion.response_code
+ true
+ 8
+
+
+
+
+ "Current logged in user is not authorized to perform this operation"
+
+ Assertion.response_data
+ true
+ 16
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/device-types
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/configuration
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "type": "android",
+ "configuration": [
+ {
+ "name": "SampleConfiguration",
+ "contentType": "text",
+ "value": "This is a sample Configuration"
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/configuration
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/configuration/license
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice1000${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f870f390352a41000${DeviceID}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice1000${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"d24f870f390352a41000${DeviceID}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature2",
+ "description":"this is the new feature 2",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "id": 10,
+ "platform": "android",
+ "category": "Business",
+ "name": "Graphical",
+ "locationUrl": "string",
+ "imageUrl": "string",
+ "version": "1.0.0",
+ "type": "string",
+ "appProperties": {},
+ "applicationIdentifier": "string",
+ "memoryUsage": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/applications
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "code": "aaa",
+ "properties": {},
+ "type": "CONFIG",
+ "id": 0,
+ "status": "IN_PROGRESS",
+ "control": "REPEAT",
+ "receivedTimeStamp": "string",
+ "createdTimeStamp": "string",
+ "payLoad": {},
+ "operationResponse": "string",
+ "activityId": "string",
+ "responses": [
+ {
+ "response": "string",
+ "receivedTimeStamp": "string"
+ }
+ ],
+ "enabled": false
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/pending-operations
+ PUT
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a41000${DeviceID}/status
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/applications
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"APPLICATION_LIST","type":"COMMAND","id":1,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:01:57.915","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "appIdentifier": [
+ "ANGRYBIRD"
+ ]
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/blacklist-applications
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "lockCode": "0000"
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/change-lock-code
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"CHANGE_LOCK_CODE","type":"PROFILE","id":2,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:14:19.718","isEnabled":true,"payLoad":"{\"lockCode\":\"0000\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/clear-password
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"CLEAR_PASSWORD","type":"COMMAND","id":3,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:18:40.233","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "serverAddress": "231.168.10.1",
+ "serverPort": "1701",
+ "sharedSecret": "YWRtaW4=",
+ "dnsServer": "8.8.8.8"
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/configure-vpn
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "ssid": "string",
+ "password": "string"
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/configure-wifi
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"WIFI","type":"PROFILE","id":4,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:24:20.315","isEnabled":true,"payLoad":"{\"ssid\":\"string\",\"password\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "enabled": false
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/control-camera
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"CAMERA","type":"COMMAND","id":5,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:28:02.864","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "encrypted": false
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/encrypt-storage
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"ENCRYPT_STORAGE","type":"COMMAND","id":6,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:31:15.288","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"ENTERPRISE_WIPE","type":"COMMAND","id":7,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:42:12.406","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "appIdentifier": "string",
+ "type": "enterprise",
+ "url": "https://www.youtube.com",
+ "name": "youtube"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/install-application
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"INSTALL_APPLICATION","type":"PROFILE","id":8,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:55:15.452","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":9,"status":"COMPLETED","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "message": "string",
+ "hardLockEnabled": false
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/lock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"DEVICE_LOCK","type":"PROFILE","id":10,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:53:28.008","isEnabled":true,"payLoad":"{\"message\":\"string\",\"isHardLockEnabled\":false}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/mute
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":true,"code":"DEVICE_MUTE","type":"COMMAND","id":11,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:56:54.703","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/reboot
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"REBOOT","type":"COMMAND","id":12,"status":"COMPLETED","createdTimeStamp":"2016-08-03 13:59:03.554","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/ring
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"DEVICE_RING","type":"COMMAND","id":13,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:00:54.603","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "messageText": "string",
+ "messageTitle": "string"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/send-notification
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"NOTIFICATION","type":"PROFILE","id":14,"status":"IN_PROGRESS","createdTimeStamp":"2016-08-03 14:02:55.003","isEnabled":true,"payLoad":"{\"messageText\":\"string\",\"messageTitle\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"NOTIFICATION","type":"PROFILE","id":14,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:02:55.003","isEnabled":true,"payLoad":"{\"messageText\":\"string\",\"messageTitle\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "maxFailedAttempts": 0,
+ "minLength": 0,
+ "pinHistory": 0,
+ "minComplexChars": 0,
+ "maxPINAgeInDays": 0,
+ "requireAlphanumeric": false,
+ "allowSimple": false
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-password-policy
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"PASSCODE_POLICY","type":"PROFILE","id":15,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:07:01.2","isEnabled":true,"payLoad":"{\"maxFailedAttempts\":0,\"minLength\":0,\"pinHistory\":0,\"minComplexChars\":0,\"maxPINAgeInDays\":0,\"requireAlphanumeric\":false,\"allowSimple\":false}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "identity": "string",
+ "title": "string",
+ "type": "string"
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/set-webclip
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"WEBCLIP","type":"PROFILE","id":16,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:26:04.822","isEnabled":true,"payLoad":"{\"identity\":\"string\",\"title\":\"string\",\"type\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "appIdentifier": "string",
+ "type": "enterprise",
+ "url": "string",
+ "name": "string"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/uninstall-application
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"UNINSTALL_APPLICATION","type":"PROFILE","id":17,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:28:26.049","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\",\"name\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/unlock-devices
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":true,"code":"DEVICE_UNLOCK","type":"COMMAND","id":18,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:35:07.994","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "appIdentifier": "string",
+ "type": "enterprise",
+ "url": "https://www.youtube.com",
+ "name": "youtube",
+ "schedule": ""
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/update-application
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"UPDATE_APPLICATION","type":"PROFILE","id":19,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:39:32.714","isEnabled":true,"payLoad":"{\"appIdentifier\":\"string\",\"type\":\"string\",\"url\":\"string\",\"schedule\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ],
+ "operation": {
+ "schedule": "",
+ "server": "string"
+ }
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/upgrade-firmware
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"UPGRADE_FIRMWARE","type":"PROFILE","id":20,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:43:25.406","isEnabled":true,"payLoad":"{\"schedule\":\"string\",\"server\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "operation": {
+ "pin": "string"
+ },
+ "deviceIDs": [
+ "d24f870f390352a4${DeviceID}"
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/wipe
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"code":"WIPE_DATA","type":"PROFILE","id":21,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:45:49.198","isEnabled":true,"payLoad":"{\"pin\":\"string\"}"}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/applications
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"APPLICATION_LIST","type":"COMMAND","id":22,"status":"COMPLETED","createdTimeStamp":"2016-08-03 14:55:18.118","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/activities
+ GET
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ ["d24f870f390352a4${DeviceID}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/info
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"DEVICE_INFO","type":"COMMAND","id":23,"status":"COMPLETED","createdTimeStamp":"2016-08-03 15:30:16.779","isEnabled":false, "operationResponse" : '{ "id": 101234, "name": "androiddevice1234","type": "android", "description": "this is an android device","deviceIdentifier": "d24f870f390352a4${DeviceID}","enrolmentInfo": {"id": 101234,"device": {},"dateOfEnrolment": 0,"dateOfLastUpdate": 0,"ownership": "BYOD","status": "CREATED","owner": "admin"},"features": [{"id": 10,"code": "aaaa1111","name": "newfeature1","description": "this is the new feature 1","deviceType": "android","metadataEntries": [{"id": 10,"value": {}}]}],"properties": [{"name": "DEVICE_MODEL","value": "S6"},{"name" : "VENDOR","value" : "SAMSUNG"}],"applications": [ {"id": 0,"platform": "string","category": "string","name": "string","locationUrl": "string","imageUrl": "string","version": "string","type": "string","appProperties": {},"applicationIdentifier": "string","memoryUsage": 0}]}'}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/d24f870f390352a4${DeviceID}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
false
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx
new file mode 100644
index 00000000..ced0e6a2
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/NotificationManagementAPI.jmx
@@ -0,0 +1,1693 @@
+
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+ 9999
+ 100
+
+ false
+
+ randAppNum
+
+
+
+
+
+ host
+ localhost
+ =
+
+
+ https_port
+ 8243
+ =
+
+
+ http_port
+ 8280
+ =
+
+
+ token_ep_host
+ localhost
+ =
+
+
+ token_ep_port
+ 8280
+ =
+
+
+ group_name
+ Group 2
+ =
+
+
+ new_group_name
+ New Group
+ =
+
+
+ role_name
+ group_sharing
+ =
+
+
+ DeviceID
+ 20
+ =
+
+
+ DeviceIdentifier
+ notifiction_device
+ =
+
+
+ tenant_user_name
+ admin
+ Name of Tenant
+ =
+
+
+ domain_name
+ wso2.com
+ Name of Domain
+ =
+
+
+ password
+ admin
+ Password
+ =
+
+
+ email
+ abc@wso2.com
+ Email
+ =
+
+
+ firstName
+ firstName
+ First Name
+ =
+
+
+ lastName
+ lastName
+ Last Name
+ =
+
+
+ usagePlan
+ Demo
+ Usage Plan
+ =
+
+
+ createdDate
+ 2013-02-22T08:22:35+05:30
+ Created Date
+ =
+
+
+ management_https_port
+ 9443
+ Port for carbon management console
+ =
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+
+ 1342532280000
+ 1342532280000
+ false
+
+
+
+
+
+
+ false
+ rfc2109
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:login>
+ <!--Optional:-->
+ <aut:username>admin</aut:username>
+ <!--Optional:-->
+ <aut:password>admin</aut:password>
+ <!--Optional:-->
+ <aut:remoteAddress>127.0.0.1</aut:remoteAddress>
+ </aut:login>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:login
+ true
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:getTenant>
+ <!--Optional:-->
+ <ser:tenantDomain>${domain_name}</ser:tenantDomain>
+ </ser:getTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:getTenant
+ true
+ false
+
+
+
+ undefined
+ tenant_exists
+ //*[local-name()='active']/text()
+ false
+ false
+ true
+ tenant_exists
+
+
+
+ false
+ true
+ true
+ false
+
+
+
+
+ ${tenant_exists}==false
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:addTenant>
+ <!--Optional:-->
+ <ser:tenantInfoBean>
+ <!--Optional:-->
+ <xsd:active>1</xsd:active>
+ <!--Optional:-->
+ <xsd:admin>${tenant_user_name}</xsd:admin>
+ <!--Optional:-->
+ <xsd:adminPassword>${password}</xsd:adminPassword>
+ <!--Optional:-->
+ <xsd:createdDate>${createdDate}</xsd:createdDate>
+ <!--Optional:-->
+ <xsd:email>${email}</xsd:email>
+ <!--Optional:-->
+ <xsd:firstname>${firstName}</xsd:firstname>
+ <!--Optional:-->
+ <xsd:lastname>${lastName}</xsd:lastname>
+ <!--Optional:-->
+ <xsd:tenantDomain>${domain_name}</xsd:tenantDomain>
+ <!--Optional:-->
+ <xsd:tenantId>0</xsd:tenantId>
+ <!--Optional:-->
+ <xsd:usagePlan>${usagePlan}</xsd:usagePlan>
+ </ser:tenantInfoBean>
+ </ser:addTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:addTenant
+ true
+ false
+
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:logout/>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:logout
+ true
+ false
+
+
+
+
+ 202
+
+ Assertion.response_code
+ false
+ 1
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+
+
+ /home/ace/Desktop/results_multi_user_multi_tenancy.jtl
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ 1465464058000
+ 1465464058000
+ false
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic YWRtaW46YWRtaW4=
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ username
+
+
+ false
+ admin
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ ["${DeviceIdentifier}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":1,"status":"ERROR","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/${DeviceIdentifier}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/notifications
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ notificationId
+ "id":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/notifications/${notificationId}/mark-checked
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "NEW"
+
+ Assertion.response_data
+ false
+ 20
+
+
+
+
+ "CHECKED"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/notifications
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "CHECKED"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ tenant_user_name,domain_name,password
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name") ;
+String password= vars.get("password");
+String toEncode = tenant_user + ":" + password;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("encodedUserPassword","Basic " + new String(encryptedId));
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_hello",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ ${encodedUserPassword}
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ ${tenant_user_name}@${domain_name}
+ =
+ true
+ username
+
+
+ false
+ ${password}
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ ["${DeviceIdentifier}"]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/admin/devices/location
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+ Accept
+ application/json
+
+
+
+
+
+
+ true
+
+
+
+ false
+ [{"enabled":false,"code":"DEVICE_LOCATION","type":"COMMAND","id":1,"status":"ERROR","createdTimeStamp":"2016-08-03 12:59:05.927","isEnabled":false}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/android/v1.0/devices/${DeviceIdentifier}/pending-operations
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/notifications
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "DEVICE_LOCATION operation did fail to execute on device androiddevice${DeviceID} with identifier notifiction_device"
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+ false
+ notificationId
+ "id":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/notifications/${notificationId}/mark-checked
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "NEW"
+
+ Assertion.response_data
+ false
+ 20
+
+
+
+
+ "CHECKED"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/notifications
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "CHECKED"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ Results
+ true
+ false
+ true
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/PolicyManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/PolicyManagementAPI.jmx
new file mode 100644
index 00000000..1200b2dd
--- /dev/null
+++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/PolicyManagementAPI.jmx
@@ -0,0 +1,3037 @@
+
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+ 9999
+ 100
+
+ false
+
+ randAppNum
+
+
+
+
+
+ host
+ localhost
+ =
+
+
+ https_port
+ 8243
+ =
+
+
+ http_port
+ 8280
+ =
+
+
+ token_ep_host
+ localhost
+ =
+
+
+ token_ep_port
+ 8280
+ =
+
+
+ group_name
+ Group 2
+ =
+
+
+ new_group_name
+ New Group
+ =
+
+
+ role_name
+ group_sharing
+ =
+
+
+ DeviceID
+ 500
+ =
+
+
+ DeviceIdentifier
+ policy_management_device
+ =
+
+
+ tenant_user_name
+ admin
+ Name of Tenant
+ =
+
+
+ domain_name
+ wso2.com
+ Name of Domain
+ =
+
+
+ password
+ admin
+ Password
+ =
+
+
+ email
+ abc@wso2.com
+ Email
+ =
+
+
+ firstName
+ firstName
+ First Name
+ =
+
+
+ lastName
+ lastName
+ Last Name
+ =
+
+
+ usagePlan
+ Demo
+ Usage Plan
+ =
+
+
+ createdDate
+ 2013-02-22T08:22:35+05:30
+ Created Date
+ =
+
+
+ management_https_port
+ 9443
+ Port for carbon management console
+ =
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+
+ 1342532280000
+ 1342532280000
+ false
+
+
+
+
+
+
+ false
+ rfc2109
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:login>
+ <!--Optional:-->
+ <aut:username>admin</aut:username>
+ <!--Optional:-->
+ <aut:password>admin</aut:password>
+ <!--Optional:-->
+ <aut:remoteAddress>127.0.0.1</aut:remoteAddress>
+ </aut:login>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:login
+ true
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:getTenant>
+ <!--Optional:-->
+ <ser:tenantDomain>${domain_name}</ser:tenantDomain>
+ </ser:getTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:getTenant
+ true
+ false
+
+
+
+ undefined
+ tenant_exists
+ //*[local-name()='active']/text()
+ false
+ false
+ true
+ tenant_exists
+
+
+
+ false
+ true
+ true
+ false
+
+
+
+
+ ${tenant_exists}==false
+ false
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ser:addTenant>
+ <!--Optional:-->
+ <ser:tenantInfoBean>
+ <!--Optional:-->
+ <xsd:active>1</xsd:active>
+ <!--Optional:-->
+ <xsd:admin>${tenant_user_name}</xsd:admin>
+ <!--Optional:-->
+ <xsd:adminPassword>${password}</xsd:adminPassword>
+ <!--Optional:-->
+ <xsd:createdDate>${createdDate}</xsd:createdDate>
+ <!--Optional:-->
+ <xsd:email>${email}</xsd:email>
+ <!--Optional:-->
+ <xsd:firstname>${firstName}</xsd:firstname>
+ <!--Optional:-->
+ <xsd:lastname>${lastName}</xsd:lastname>
+ <!--Optional:-->
+ <xsd:tenantDomain>${domain_name}</xsd:tenantDomain>
+ <!--Optional:-->
+ <xsd:tenantId>0</xsd:tenantId>
+ <!--Optional:-->
+ <xsd:usagePlan>${usagePlan}</xsd:usagePlan>
+ </ser:tenantInfoBean>
+ </ser:addTenant>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:addTenant
+ true
+ false
+
+
+
+
+
+
+
+ https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <aut:logout/>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+ urn:logout
+ true
+ false
+
+
+
+
+ 202
+
+ Assertion.response_code
+ false
+ 1
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+
+
+ /home/ace/Desktop/results_multi_user_multi_tenancy.jtl
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ 1465464058000
+ 1465464058000
+ false
+
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_${randAppNum}",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic YWRtaW46YWRtaW4=
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ admin
+ =
+ true
+ username
+
+
+ false
+ admin
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "policyName":"policy1",
+ "description":"This is a policy",
+ "compliance":"enforce",
+ "ownershipType":null,
+ "active":false,
+ "profile":{
+ "profileName":"policy1",
+ "deviceType":"android",
+ "profileFeaturesList":[
+ {
+ "featureCode":"PASSCODE_POLICY",
+ "deviceType":"android",
+ "content":{
+ "allowSimple":true,
+ "requireAlphanumeric":true,
+ "minLength":null,
+ "minComplexChars":null,
+ "maxPINAgeInDays":null,
+ "pinHistory":null,
+ "maxFailedAttempts":null
+ }
+ }
+ ]
+ },
+ "roles":["ANY"]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "id"
+ "profileId"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ policyId
+ "id":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/activate-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Selected policies have been successfully activated"
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/apply-changes
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Changes have been successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/effective-policy/android/${DeviceIdentifier}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "id":${policyId}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/deactivate-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Selected policies have been successfully deactivated"
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/apply-changes
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Changes have been successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/effective-policy/android/${DeviceIdentifier}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ ${policyId}
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "id": ${policyId},
+ "priority": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/priorities
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Policy Priorities successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "id":${policyId},"priorityId":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "policyName":"policy1",
+ "description":"This is a policy",
+ "compliance":"enforce",
+ "ownershipType":null,
+ "active":false,
+ "profile":{
+ "profileName":"policy1",
+ "deviceType":"android",
+ "profileFeaturesList":[
+ {
+ "featureCode":"PASSCODE_POLICY",
+ "deviceType":"android",
+ "content":{
+ "allowSimple":true,
+ "requireAlphanumeric":true,
+ "minLength":null,
+ "minComplexChars":null,
+ "maxPINAgeInDays":null,
+ "pinHistory":null,
+ "maxFailedAttempts":null
+ }
+ }
+ ]
+ },
+ "roles":["admin"]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Policy has successfully been updated."
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "roles":["admin"]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/remove-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 8
+
+
+
+
+
+ tenant_user_name,domain_name,password
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String tenant_user= vars.get("tenant_user_name") + "@" + vars.get("domain_name") ;
+String password= vars.get("password");
+String toEncode = tenant_user + ":" + password;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("encodedUserPassword","Basic " + new String(encryptedId));
+
+
+
+ true
+
+
+
+ false
+ {
+ "applicationName":"app_hello",
+ "isAllowedToAllDomains":false,
+ "tags":["android", "device_management"],
+ "isMappingAnExistingOAuthApp":false
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api-application-registration/register
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ ${encodedUserPassword}
+
+
+ Host
+ localhost:9763
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+ false
+ clientId
+ "client_id":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+ false
+ clientSecret
+ "client_secret":"(.+?)"
+ $1$
+ 0
+ 1
+
+
+
+
+
+ clientId,clientSecret
+ false
+ import org.apache.commons.codec.binary.Base64;
+
+String clientId= vars.get("clientId");
+String clientSecret = vars.get("clientSecret");
+String toEncode = clientId + ":" + clientSecret;
+
+byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes());
+vars.put("base64encodedId",new String(encryptedId));
+
+
+
+
+
+
+ false
+ ${tenant_user_name}@${domain_name}
+ =
+ true
+ username
+
+
+ false
+ ${password}
+ =
+ true
+ password
+
+
+ false
+ password
+ =
+ true
+ grant_type
+
+
+ false
+ perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications
+ =
+ true
+ scope
+
+
+ false
+
+ =
+ true
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /token
+ POST
+ true
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Basic ${base64encodedId}
+
+
+ Content-Type
+ application/x-www-form-urlencoded
+
+
+
+
+
+ false
+ access_token
+ "access_token":"(.+?)"
+ $1$
+ no_token
+ 1
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "id":1000${DeviceID},
+ "name":"androiddevice${DeviceID}",
+ "type":"android",
+ "description":"this is an android device",
+ "deviceIdentifier":"${DeviceIdentifier}",
+ "enrolmentInfo":{
+ "id":1000${DeviceID},
+ "device":{
+
+ },
+ "dateOfEnrolment":0,
+ "dateOfLastUpdate":0,
+ "ownership":"BYOD",
+ "status":"CREATED",
+ "owner":"admin"
+ },
+ "features":[
+ {
+ "id":10,
+ "code":"aaaa1111",
+ "name":"newfeature1",
+ "description":"this is the new feature 1",
+ "deviceType":"android",
+ "metadataEntries":[
+ {
+ "id":10,
+ "value":{
+
+ }
+ }
+ ]
+ }
+ ],
+ "properties":[
+ {
+ "name":"property1",
+ "value":"value1"
+ }
+ ],
+ "deviceInfo":{
+ "deviceModel":"S6",
+ "vendor":"SAMSUNG",
+ "osVersion":"5.1",
+ "batteryLevel":1,
+ "internalTotalMemory":32,
+ "internalAvailableMemory":24,
+ "externalTotalMemory":64,
+ "externalAvailableMemory":60,
+ "operator":"dialog",
+ "connectionType":"GSM",
+ "mobileSignalStrength":1,
+ "ssid":"picassowifi",
+ "cpuUsage":0,
+ "totalRAMMemory":2,
+ "availableRAMMemory":1,
+ "pluggedIn":false,
+ "location":{
+ "deviceId":0,
+ "deviceIdentifier":{
+ "id":"string",
+ "type":"string"
+ },
+ "latitude":0,
+ "longitude":0,
+ "street1":"string",
+ "street2":"string",
+ "city":"string",
+ "state":"string",
+ "zip":"string",
+ "country":"string"
+ },
+ "deviceDetailsMap":{
+
+ },
+ "imei":"string",
+ "imsi":"string"
+ },
+ "applications":[
+ {
+ "id":0,
+ "platform":"string",
+ "category":"string",
+ "name":"string",
+ "locationUrl":"string",
+ "imageUrl":"string",
+ "version":"string",
+ "type":"string",
+ "appProperties":{
+
+ },
+ "applicationIdentifier":"string",
+ "memoryUsage":0
+ }
+ ]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/android/v1.0/devices
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "policyName":"policy1",
+ "description":"This is a policy",
+ "compliance":"enforce",
+ "ownershipType":null,
+ "active":false,
+ "profile":{
+ "profileName":"policy1",
+ "deviceType":"android",
+ "profileFeaturesList":[
+ {
+ "featureCode":"PASSCODE_POLICY",
+ "deviceType":"android",
+ "content":{
+ "allowSimple":true,
+ "requireAlphanumeric":true,
+ "minLength":null,
+ "minComplexChars":null,
+ "maxPINAgeInDays":null,
+ "pinHistory":null,
+ "maxFailedAttempts":null
+ }
+ }
+ ]
+ },
+ "roles":["ANY"]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 201
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "id"
+ "profileId"
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+ false
+ policyId
+ "id":(.+?)
+ $1$
+ 0
+ 1
+
+
+
+
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "count":1
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/activate-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Selected policies have been successfully activated"
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/apply-changes
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Changes have been successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/effective-policy/android/${DeviceIdentifier}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ ${policyId}
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/deactivate-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Selected policies have been successfully deactivated"
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/apply-changes
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Changes have been successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+
+ /api/device-mgt/v1.0/policies/effective-policy/android/${DeviceIdentifier}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 2
+
+
+
+
+ "id":${policyId}
+
+ Assertion.response_data
+ false
+ 6
+
+
+
+
+ true
+
+
+
+ false
+ [
+ {
+ "id": ${policyId},
+ "priority": 0
+ }
+]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/priorities
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Policy Priorities successfully updated."
+
+ Assertion.response_data
+ false
+ 8
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "id":${policyId},"priorityId":0
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+ {
+ "policyName":"policy1",
+ "description":"This is a policy",
+ "compliance":"enforce",
+ "ownershipType":null,
+ "active":false,
+ "profile":{
+ "profileName":"policy1",
+ "deviceType":"android",
+ "profileFeaturesList":[
+ {
+ "featureCode":"PASSCODE_POLICY",
+ "deviceType":"android",
+ "content":{
+ "allowSimple":true,
+ "requireAlphanumeric":true,
+ "minLength":null,
+ "minComplexChars":null,
+ "maxPINAgeInDays":null,
+ "pinHistory":null,
+ "maxFailedAttempts":null
+ }
+ }
+ ]
+ },
+ "roles":["admin"]
+}
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ PUT
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "Policy has successfully been updated."
+
+ Assertion.response_data
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ "roles":["admin"]
+
+ Assertion.response_data
+ false
+ 16
+
+
+
+
+ true
+
+
+
+ false
+ [${policyId}]
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/remove-policy
+ POST
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 200
+
+ Assertion.response_code
+ false
+ 2
+
+
+
+
+ true
+
+
+
+ false
+
+ =
+
+
+
+ ${host}
+ ${https_port}
+
+
+ https
+ UTF-8
+ /api/device-mgt/v1.0/policies/${policyId}
+ GET
+ false
+ false
+ true
+ false
+ HttpClient4
+ false
+
+
+
+
+
+
+ Authorization
+ Bearer ${access_token}
+
+
+ Content-Type
+ application/json
+
+
+
+
+
+
+ 404
+
+ Assertion.response_code
+ true
+ 8
+
+
+
+
+ 1000
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ Results
+ true
+ false
+ true
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ true
+
+
+
+
+
+
+
+
diff --git a/modules/integration/tests-integration/src/test/resources/testng.xml b/modules/integration/tests-integration/src/test/resources/testng.xml
index 5b704d39..299b8669 100644
--- a/modules/integration/tests-integration/src/test/resources/testng.xml
+++ b/modules/integration/tests-integration/src/test/resources/testng.xml
@@ -64,14 +64,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -79,30 +79,50 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 78f6b3c7..a9c838e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1513,7 +1513,7 @@
- 2.0.49
+ 2.0.54
[2.0.0, 3.0.0)
@@ -1521,7 +1521,7 @@
- 3.0.27
+ 3.0.30
6.1.80