diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
index 9ec44fb8e0..31f3ee6fbb 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.api/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
index f6acc863f0..d785dc4985 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.common/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
index 605085f836..278e649def 100644
--- a/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/io.entgra.device.mgt.core.analytics.mgt.grafana.proxy.core/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
grafana-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/grafana-mgt/pom.xml b/components/analytics-mgt/grafana-mgt/pom.xml
index b727405a97..c4591f4e67 100644
--- a/components/analytics-mgt/grafana-mgt/pom.xml
+++ b/components/analytics-mgt/grafana-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
analytics-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/analytics-mgt/pom.xml b/components/analytics-mgt/pom.xml
index a059180ec0..1b67f931d7 100644
--- a/components/analytics-mgt/pom.xml
+++ b/components/analytics-mgt/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core.parent
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
index 7d4c9f4674..8075021a33 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.analytics.extension/pom.xml
@@ -20,7 +20,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
index 11c12b310d..1581c4dbfc 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.annotations/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
index 95272e5c94..b0f5410d28 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/src/main/java/io/entgra/device/mgt/core/apimgt/application/extension/api/util/APIUtil.java b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/src/main/java/io/entgra/device/mgt/core/apimgt/application/extension/api/util/APIUtil.java
index f56ec6831b..9a4702cdcb 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/src/main/java/io/entgra/device/mgt/core/apimgt/application/extension/api/util/APIUtil.java
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension.api/src/main/java/io/entgra/device/mgt/core/apimgt/application/extension/api/util/APIUtil.java
@@ -51,6 +51,8 @@ public class APIUtil {
private static final String DEFAULT_ENTERPRISE_TAG= "androidforwork";
private static final String DEFAULT_ANALYTICS_MGT_TAG= "analytics_management";
+ private static final String DEFAULT_DEVICE_ORGANIZATION_MGT_TAG= "device_organization_management";
+
public static final String PERMISSION_PROPERTY_NAME = "name";
public static String getAuthenticatedUser() {
@@ -121,6 +123,7 @@ public class APIUtil {
allowedApisTags.add(DEFAULT_ANALYTICS_ARTIFACT_TAG);
allowedApisTags.add(DEFAULT_TRANSPORT_MGT_TAG);
allowedApisTags.add(DEFAULT_ANALYTICS_MGT_TAG);
+ allowedApisTags.add(DEFAULT_DEVICE_ORGANIZATION_MGT_TAG);
// In an environment only super tenant should be capable of calling this API tag
if (PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId() ==
MultitenantConstants.SUPER_TENANT_ID) {
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
index 87b20c6188..42209a881a 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.application.extension/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
index 076b2ee983..31e52840c3 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.extension.rest.api/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
index 3d241b172a..d3faeba0b7 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension.api/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
4.0.0
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
index e623d369b0..5fd353e02d 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.keymgt.extension/pom.xml
@@ -21,7 +21,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
index c99ad0899a..80de344fbb 100644
--- a/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
+++ b/components/apimgt-extensions/io.entgra.device.mgt.core.apimgt.webapp.publisher/pom.xml
@@ -22,7 +22,7 @@
apimgt-extensions
io.entgra.device.mgt.core
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/apimgt-extensions/pom.xml b/components/apimgt-extensions/pom.xml
index 57ca6e06bc..522dd8c4b4 100644
--- a/components/apimgt-extensions/pom.xml
+++ b/components/apimgt-extensions/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../../pom.xml
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
index 8f8b82d644..21d7cb87e6 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.common/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
application-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
index 79305be683..52565ff227 100644
--- a/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
+++ b/components/application-mgt/io.entgra.device.mgt.core.application.mgt.core/pom.xml
@@ -21,7 +21,7 @@
io.entgra.device.mgt.core
application-mgt
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../pom.xml
diff --git a/components/application-mgt/pom.xml b/components/application-mgt/pom.xml
index 90f0f8b4d6..d0e495c5ec 100644
--- a/components/application-mgt/pom.xml
+++ b/components/application-mgt/pom.xml
@@ -22,7 +22,7 @@
io.entgra.device.mgt.core
io.entgra.device.mgt.core.parent
- 5.0.38-SNAPSHOT
+ 5.0.40-SNAPSHOT
../../pom.xml
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml
new file mode 100644
index 0000000000..239156f4d9
--- /dev/null
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/pom.xml
@@ -0,0 +1,195 @@
+
+
+
+
+
+ io.entgra.device.mgt.core
+ cea-mgt
+ 5.0.40-SNAPSHOT
+ ../pom.xml
+
+
+ 4.0.0
+ io.entgra.device.mgt.core.cea.mgt.admin.api
+ war
+ Entgra IoT - CEA Management Admin API
+ Entgra IoT - Conditional Email Access Management Admin API
+
+
+
+
+ maven-compiler-plugin
+
+
+ 1.8
+
+
+
+ maven-war-plugin
+
+ WEB-INF/lib/*cxf*.jar
+ api#cea-mgt#v1.0
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+
+ ${basedir}/target/coverage-reports/jacoco-unit.exec
+
+
+
+ jacoco-initialize
+
+ prepare-agent
+
+
+
+ jacoco-site
+ test
+
+ report
+
+
+ ${basedir}/target/coverage-reports/jacoco-unit.exec
+ ${basedir}/target/coverage-reports/site
+
+
+
+
+
+
+
+
+
+ deploy
+
+ compile
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 1.7
+
+
+ compile
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.springframework
+ spring-web
+ provided
+
+
+ org.apache.cxf
+ cxf-bundle-jaxrs
+ provided
+
+
+ commons-codec.wso2
+ commons-codec
+
+
+ commons-codec
+ commons-codec
+
+
+
+
+ junit
+ junit
+ test
+
+
+ io.swagger
+ swagger-annotations
+
+
+ io.swagger
+ swagger-core
+
+
+ org.wso2.orbit.com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+ org.wso2.carbon
+ org.wso2.carbon.logging
+ provided
+
+
+ io.swagger
+ swagger-jaxrs
+
+
+ com.fasterxml.jackson.module
+ jackson-module-jaxb-annotations
+
+
+ org.slf4j
+ slf4j-api
+
+
+
+
+ io.entgra.device.mgt.core
+ io.entgra.device.mgt.core.apimgt.annotations
+ provided
+
+
+ io.entgra.device.mgt.core
+ io.entgra.device.mgt.core.cea.mgt.common
+ provided
+
+
+ org.wso2.carbon
+ org.wso2.carbon.utils
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/AccessPolicyWrapper.java b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/AccessPolicyWrapper.java
new file mode 100644
index 0000000000..cf5c9e7167
--- /dev/null
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/AccessPolicyWrapper.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.cea.mgt.admin.api.bean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Set;
+
+@ApiModel(value = "AccessPolicyWrapper", description = "Access policy transferring DTO")
+public class AccessPolicyWrapper {
+ @JsonProperty(value = "defaultAccessPolicy", required = true)
+ @ApiModelProperty(name = "defaultAccessPolicy", value = "Default access policy value", required = true)
+ private String defaultAccessPolicy;
+
+ @JsonProperty(value = "emailOutlookAccessPolicy", required = true)
+ @ApiModelProperty(name = "emailOutlookAccessPolicy", value = "Email outlook access policy value", required = true)
+ private Set emailOutlookAccessPolicy;
+
+ @JsonProperty(value = "POPIMAPAccessPolicy", required = true)
+ @ApiModelProperty(name = "POPIMAPAccessPolicy", value = "POP/IMAP access policy value", required = true)
+ private String POPIMAPAccessPolicy;
+
+ @JsonProperty(value = "webOutlookAccessPolicy", required = true)
+ @ApiModelProperty(name = "webOutlookAccessPolicy", value = "Web outlook access policy value", required = true)
+ private String webOutlookAccessPolicy;
+
+ public String getDefaultAccessPolicy() {
+ return defaultAccessPolicy;
+ }
+
+ public void setDefaultAccessPolicy(String defaultAccessPolicy) {
+ this.defaultAccessPolicy = defaultAccessPolicy;
+ }
+
+ public Set getEmailOutlookAccessPolicy() {
+ return emailOutlookAccessPolicy;
+ }
+
+ public void setEmailOutlookAccessPolicy(Set emailOutlookAccessPolicy) {
+ this.emailOutlookAccessPolicy = emailOutlookAccessPolicy;
+ }
+
+ public String getPOPIMAPAccessPolicy() {
+ return POPIMAPAccessPolicy;
+ }
+
+ public void setPOPIMAPAccessPolicy(String POPIMAPAccessPolicy) {
+ this.POPIMAPAccessPolicy = POPIMAPAccessPolicy;
+ }
+
+ public String getWebOutlookAccessPolicy() {
+ return webOutlookAccessPolicy;
+ }
+
+ public void setWebOutlookAccessPolicy(String webOutlookAccessPolicy) {
+ this.webOutlookAccessPolicy = webOutlookAccessPolicy;
+ }
+}
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/CEAPolicyWrapper.java b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/CEAPolicyWrapper.java
new file mode 100644
index 0000000000..a92198f053
--- /dev/null
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/CEAPolicyWrapper.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.cea.mgt.admin.api.bean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.entgra.device.mgt.core.cea.mgt.common.bean.ActiveSyncServer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "CEAPolicyWrapper", description = "CEA policy transferring DTO")
+public class CEAPolicyWrapper {
+ @JsonProperty(value = "activeSyncServerEntries", required = true)
+ @ApiModelProperty(name = "activeSyncServerEntries", value = "Active sync server properties", required = true)
+ private ActiveSyncServer activeSyncServerEntries;
+
+ @JsonProperty(value = "conditionalAccessPolicyEntries", required = true)
+ @ApiModelProperty(name = "conditionalAccessPolicyEntries", value = "Definition of the access policy", required = true)
+ private AccessPolicyWrapper conditionalAccessPolicyEntries;
+
+ @JsonProperty(value = "gracePeriodEntries", required = true)
+ @ApiModelProperty(name = "gracePeriodEntries", value = "Definition of the grace period", required = true)
+ private GracePeriodWrapper gracePeriodEntries;
+
+ public ActiveSyncServer getActiveSyncServerEntries() {
+ return activeSyncServerEntries;
+ }
+
+ public void setActiveSyncServerEntries(ActiveSyncServer activeSyncServerEntries) {
+ this.activeSyncServerEntries = activeSyncServerEntries;
+ }
+
+ public AccessPolicyWrapper getConditionalAccessPolicyEntries() {
+ return conditionalAccessPolicyEntries;
+ }
+
+ public void setConditionalAccessPolicyEntries(AccessPolicyWrapper conditionalAccessPolicyEntries) {
+ this.conditionalAccessPolicyEntries = conditionalAccessPolicyEntries;
+ }
+
+ public GracePeriodWrapper getGracePeriodEntries() {
+ return gracePeriodEntries;
+ }
+
+ public void setGracePeriodEntries(GracePeriodWrapper gracePeriodEntries) {
+ this.gracePeriodEntries = gracePeriodEntries;
+ }
+}
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/GracePeriodWrapper.java b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/GracePeriodWrapper.java
new file mode 100644
index 0000000000..2a74e89fe4
--- /dev/null
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/bean/GracePeriodWrapper.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.cea.mgt.admin.api.bean;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel(value = "GracePeriodWrapper", description = "GracePeriod transferring DTO")
+public class GracePeriodWrapper {
+
+ @JsonProperty(value = "gracePeriod", required = true)
+ @ApiModelProperty(name = "gracePeriod", value = "Grace period in days", required = true)
+ private int gracePeriod;
+
+ @JsonProperty(value = "graceAllowedPolicy", required = true)
+ @ApiModelProperty(name = "graceAllowedPolicy", value = "Grace allowed policy values", required = true)
+ private String graceAllowedPolicy;
+
+ public int getGracePeriod() {
+ return gracePeriod;
+ }
+
+ public void setGracePeriod(int gracePeriod) {
+ this.gracePeriod = gracePeriod;
+ }
+
+ public String getGraceAllowedPolicy() {
+ return graceAllowedPolicy;
+ }
+
+ public void setGraceAllowedPolicy(String graceAllowedPolicy) {
+ this.graceAllowedPolicy = graceAllowedPolicy;
+ }
+}
diff --git a/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/common/GsonMessageBodyHandler.java b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/common/GsonMessageBodyHandler.java
new file mode 100644
index 0000000000..06abe1496f
--- /dev/null
+++ b/components/cea-mgt/io.entgra.device.mgt.core.cea.mgt.admin.api/src/main/java/io/entgra/device/mgt/core/cea/mgt/admin/api/common/GsonMessageBodyHandler.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2018 - 2024, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
+ *
+ * Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.cea.mgt.admin.api.common;
+
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyReader;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
+@Provider
+@Produces(APPLICATION_JSON)
+@Consumes(APPLICATION_JSON)
+public class GsonMessageBodyHandler implements MessageBodyWriter