From 0d5f5d1c6c794a0e7eef1f68c1906de4e5fa5d21 Mon Sep 17 00:00:00 2001
From: kpoulakakis <kpoulakakis@ubitech.eu>
Date: Tue, 13 Feb 2024 18:39:22 +0200
Subject: [PATCH] refactor: change package for the policy grpc services. Add
 lombok library. Make a parent class for PolicyRuleService and
 PolicyRuleDevice.

---
 src/policy/pom.xml                            |  7 +++
 .../java/org/etsi/tfs/policy/Serializer.java  | 16 ++++-
 .../policy/common/ApplicationProperties.java  |  4 +-
 .../tfs/policy/context/ContextGateway.java    |  2 +-
 .../policy/context/ContextGatewayImpl.java    |  2 +-
 .../tfs/policy/context/ContextService.java    |  2 +-
 .../policy/context/ContextServiceImpl.java    |  2 +-
 .../exception/GeneralExceptionHandler.java    |  2 +-
 .../policy/{ => policy}/PolicyGateway.java    |  2 +-
 .../{ => policy}/PolicyGatewayImpl.java       |  3 +-
 .../policy/{ => policy}/PolicyService.java    |  8 +--
 .../{ => policy}/PolicyServiceImpl.java       | 63 ++++++++++---------
 .../{ => policy}/model/BooleanOperator.java   |  2 +-
 .../{ => policy}/model/NumericalOperator.java |  2 +-
 .../policy/{ => policy}/model/PolicyRule.java |  2 +-
 .../{ => policy}/model/PolicyRuleAction.java  |  2 +-
 .../model/PolicyRuleActionConfig.java         |  2 +-
 .../model/PolicyRuleActionEnum.java           |  2 +-
 .../policy/policy/model/PolicyRuleBase.java   | 13 ++++
 .../{ => policy}/model/PolicyRuleBasic.java   |  4 +-
 .../model/PolicyRuleCondition.java            |  2 +-
 .../{ => policy}/model/PolicyRuleDevice.java  | 25 +-------
 .../{ => policy}/model/PolicyRuleService.java | 30 ++-------
 .../{ => policy}/model/PolicyRuleState.java   |  2 +-
 .../model/PolicyRuleStateEnum.java            |  2 +-
 .../{ => policy}/model/PolicyRuleType.java    |  2 +-
 .../model/PolicyRuleTypeDevice.java           |  2 +-
 .../model/PolicyRuleTypeService.java          |  2 +-
 .../PolicyRuleConditionFieldsGetter.java      |  6 +-
 .../PolicyRuleConditionValidator.java         |  4 +-
 .../etsi/tfs/policy/PolicyAddDeviceTest.java  | 22 ++++---
 .../etsi/tfs/policy/PolicyAddServiceTest.java | 24 +++----
 .../tfs/policy/PolicyDeleteServiceTest.java   | 27 ++++----
 .../tfs/policy/PolicyGrpcServiceTest.java     |  9 +--
 .../policy/PolicyRuleBasicValidationTest.java | 18 +++---
 .../PolicyRuleConditionValidationTest.java    |  4 +-
 .../PolicyRuleDeviceValidationTest.java       | 20 +++---
 .../PolicyRuleServiceValidationTest.java      | 21 ++++---
 .../tfs/policy/PolicyUpdateDeviceTest.java    | 22 ++++---
 .../tfs/policy/PolicyUpdateServiceTest.java   | 22 ++++---
 .../org/etsi/tfs/policy/SerializerTest.java   | 22 +++----
 41 files changed, 217 insertions(+), 213 deletions(-)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/PolicyGateway.java (95%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/PolicyGatewayImpl.java (98%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/PolicyService.java (83%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/PolicyServiceImpl.java (95%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/BooleanOperator.java (94%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/NumericalOperator.java (95%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRule.java (96%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleAction.java (97%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleActionConfig.java (96%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleActionEnum.java (95%)
 create mode 100644 src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleBasic.java (97%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleCondition.java (98%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleDevice.java (73%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleService.java (76%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleState.java (97%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleStateEnum.java (95%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleType.java (94%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleTypeDevice.java (96%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy}/model/PolicyRuleTypeService.java (96%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy/service}/PolicyRuleConditionFieldsGetter.java (90%)
 rename src/policy/src/main/java/org/etsi/tfs/policy/{ => policy/service}/PolicyRuleConditionValidator.java (97%)

diff --git a/src/policy/pom.xml b/src/policy/pom.xml
index 0818018d1..260368259 100644
--- a/src/policy/pom.xml
+++ b/src/policy/pom.xml
@@ -152,6 +152,13 @@
             <artifactId>quarkus-config-yaml</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.30</version>
+            <scope>provided</scope>
+        </dependency>
+
         <!-- Testing -->
         <dependency>
             <groupId>org.assertj</groupId>
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java
index 302af09eb..570a7fb9e 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java
@@ -85,7 +85,6 @@ import org.etsi.tfs.policy.context.model.ServiceTypeEnum;
 import org.etsi.tfs.policy.context.model.SliceId;
 import org.etsi.tfs.policy.context.model.TopologyId;
 import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType;
-import org.etsi.tfs.policy.model.*;
 import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor;
 import org.etsi.tfs.policy.monitoring.model.AlarmResponse;
 import org.etsi.tfs.policy.monitoring.model.AlarmSubscription;
@@ -101,6 +100,21 @@ import org.etsi.tfs.policy.monitoring.model.MonitorKpiRequest;
 import org.etsi.tfs.policy.monitoring.model.StringKpiValue;
 import org.etsi.tfs.policy.monitoring.model.SubsDescriptor;
 import org.etsi.tfs.policy.monitoring.model.SubsResponse;
+import org.etsi.tfs.policy.policy.model.*;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleTypeDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService;
 import policy.Policy;
 import policy.Policy.PolicyRuleId;
 import policy.PolicyAction;
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java b/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java
index f01fcd9cc..daedca1f1 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/common/ApplicationProperties.java
@@ -16,8 +16,8 @@
 
 package org.etsi.tfs.policy.common;
 
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
 
 public class ApplicationProperties {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java
index 42c82baa4..832677583 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGateway.java
@@ -21,7 +21,7 @@ import org.etsi.tfs.policy.context.model.Device;
 import org.etsi.tfs.policy.context.model.Empty;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
-import org.etsi.tfs.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
 
 public interface ContextGateway {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java
index aa959c7ae..4ee57445f 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextGatewayImpl.java
@@ -27,7 +27,7 @@ import org.etsi.tfs.policy.context.model.Device;
 import org.etsi.tfs.policy.context.model.Empty;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
-import org.etsi.tfs.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
 
 @ApplicationScoped
 public class ContextGatewayImpl implements ContextGateway {
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java
index a8a81ed31..ae1dff4c2 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextService.java
@@ -21,7 +21,7 @@ import org.etsi.tfs.policy.context.model.Device;
 import org.etsi.tfs.policy.context.model.Empty;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
-import org.etsi.tfs.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
 
 public interface ContextService {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java
index 96f9c804f..b9c733b2b 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/ContextServiceImpl.java
@@ -23,7 +23,7 @@ import org.etsi.tfs.policy.context.model.Device;
 import org.etsi.tfs.policy.context.model.Empty;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
-import org.etsi.tfs.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
 
 @ApplicationScoped
 public class ContextServiceImpl implements ContextService {
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java b/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java
index f6053ade2..9c92ef758 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/exception/GeneralExceptionHandler.java
@@ -20,7 +20,7 @@ public class GeneralExceptionHandler implements ExceptionHandlerProvider {
     public Throwable transform(Throwable t) {
         if (t instanceof ExternalServiceFailureException) {
             return new StatusRuntimeException(Status.INTERNAL.withDescription(t.getMessage()));
-        }else if (t instanceof NewException) {
+        } else if (t instanceof NewException) {
             return new StatusRuntimeException(Status.UNIMPLEMENTED.withDescription(t.getMessage()));
         } else {
             return ExceptionHandlerProvider.toStatusException(t, true);
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyGateway.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java
similarity index 95%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyGateway.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java
index 2dd059ac8..dfd48c7c4 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyGateway.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGateway.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy;
 
 import policy.PolicyService;
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyGatewayImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java
similarity index 98%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyGatewayImpl.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java
index 81478b014..9c3a2a4c9 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyGatewayImpl.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy;
 
 import context.ContextOuterClass.ServiceId;
 import io.quarkus.grpc.GrpcService;
@@ -23,6 +23,7 @@ import jakarta.inject.Inject;
 import org.eclipse.microprofile.metrics.MetricUnits;
 import org.eclipse.microprofile.metrics.annotation.Counted;
 import org.eclipse.microprofile.metrics.annotation.Timed;
+import org.etsi.tfs.policy.Serializer;
 import policy.Policy;
 import policy.Policy.PolicyRuleBasic;
 import policy.Policy.PolicyRuleDevice;
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java
similarity index 83%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyService.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java
index c0521c192..ec8e3e3e9 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyService.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyService.java
@@ -14,12 +14,12 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy;
 
 import io.smallrye.mutiny.Uni;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
 
 public interface PolicyService {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java
similarity index 95%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyServiceImpl.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java
index bb09fc883..984276f59 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyServiceImpl.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy;
 
 import static org.etsi.tfs.policy.common.ApplicationProperties.*;
 
@@ -45,24 +45,26 @@ import org.etsi.tfs.policy.context.model.ServiceId;
 import org.etsi.tfs.policy.device.DeviceService;
 import org.etsi.tfs.policy.exception.ExternalServiceFailureException;
 import org.etsi.tfs.policy.exception.NewException;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.PolicyRule;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
-import org.etsi.tfs.policy.model.PolicyRuleTypeDevice;
-import org.etsi.tfs.policy.model.PolicyRuleTypeService;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor;
 import org.etsi.tfs.policy.monitoring.model.AlarmResponse;
 import org.etsi.tfs.policy.monitoring.model.AlarmSubscription;
 import org.etsi.tfs.policy.monitoring.model.KpiValueRange;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleTypeDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionFieldsGetter;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.etsi.tfs.policy.service.ServiceService;
 import org.jboss.logging.Logger;
 
@@ -124,20 +126,20 @@ public class PolicyServiceImpl implements PolicyService {
         LOGGER.infof("Received %s", policyRuleService);
 
         if (!policyRuleService.areArgumentsValid()) {
-            LOGGER.error(policyRuleService.getExeceptionMessage());
+            LOGGER.error(policyRuleService.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExceptionMessage());
 
             return Uni.createFrom().item(policyRuleState);
         }
 
         final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();
         if (!policyRuleBasic.areArgumentsValid()) {
-            LOGGER.error(policyRuleService.getExeceptionMessage());
+            LOGGER.error(policyRuleService.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage());
             return Uni.createFrom().item(policyRuleState);
         }
 
@@ -278,26 +280,25 @@ public class PolicyServiceImpl implements PolicyService {
         LOGGER.infof("Received %s", policyRuleDevice);
 
         if (!policyRuleDevice.areArgumentsValid()) {
-            LOGGER.error(policyRuleDevice.getExeceptionMessage());
+            LOGGER.error(policyRuleDevice.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExceptionMessage());
 
             return Uni.createFrom().item(policyRuleState);
         }
 
         final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic();
         if (!policyRuleBasic.areArgumentsValid()) {
-            LOGGER.error(policyRuleDevice.getExeceptionMessage());
+            LOGGER.error(policyRuleDevice.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage());
             return Uni.createFrom().item(policyRuleState);
         }
 
         final var deviceIds = policyRuleDevice.getDeviceIds();
-//        final var areDevicesValid = returnInvalidDeviceIds(deviceIds);
-        final var areDevicesValid = Uni.createFrom().item(List.of(true));
+        final var areDevicesValid = returnInvalidDeviceIds(deviceIds);
 
         return areDevicesValid
                 .onFailure()
@@ -408,20 +409,20 @@ public class PolicyServiceImpl implements PolicyService {
         LOGGER.infof("Received %s", policyRuleService);
 
         if (!policyRuleService.areArgumentsValid()) {
-            LOGGER.error(policyRuleService.getExeceptionMessage());
+            LOGGER.error(policyRuleService.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleService.getExceptionMessage());
 
             return Uni.createFrom().item(policyRuleState);
         }
 
         final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();
         if (!policyRuleBasic.areArgumentsValid()) {
-            LOGGER.error(policyRuleService.getExeceptionMessage());
+            LOGGER.error(policyRuleService.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage());
             return Uni.createFrom().item(policyRuleState);
         }
 
@@ -450,10 +451,10 @@ public class PolicyServiceImpl implements PolicyService {
         LOGGER.infof("Received %s", policyRuleDevice);
 
         if (!policyRuleDevice.areArgumentsValid()) {
-            LOGGER.error(policyRuleDevice.getExeceptionMessage());
+            LOGGER.error(policyRuleDevice.getExceptionMessage());
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleDevice.getExceptionMessage());
 
             return Uni.createFrom().item(policyRuleState);
         }
@@ -462,7 +463,7 @@ public class PolicyServiceImpl implements PolicyService {
         if (!policyRuleBasic.areArgumentsValid()) {
             final var policyRuleState =
                     new PolicyRuleState(
-                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExeceptionMessage());
+                            PolicyRuleStateEnum.POLICY_FAILED, policyRuleBasic.getExceptionMessage());
             return Uni.createFrom().item(policyRuleState);
         }
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/BooleanOperator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java
similarity index 94%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/BooleanOperator.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java
index 85133fc53..fe3ac3532 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/BooleanOperator.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/BooleanOperator.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public enum BooleanOperator {
     POLICYRULE_CONDITION_BOOLEAN_UNDEFINED,
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/NumericalOperator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java
similarity index 95%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/NumericalOperator.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java
index bc66490dd..bb6af774b 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/NumericalOperator.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/NumericalOperator.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public enum NumericalOperator {
     POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED,
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRule.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java
similarity index 96%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRule.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java
index b879dbd7b..06b56c532 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRule.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRule.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public class PolicyRule {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleAction.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java
similarity index 97%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleAction.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java
index f6b6d2e2f..a1d87ae78 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleAction.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleAction.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 import java.util.List;
 import java.util.stream.Collectors;
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionConfig.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java
similarity index 96%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionConfig.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java
index d815a3e9e..341ecfddc 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionConfig.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public class PolicyRuleActionConfig {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionEnum.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java
similarity index 95%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionEnum.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java
index a29f46133..6e89898a7 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleActionEnum.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public enum PolicyRuleActionEnum {
     POLICY_RULE_ACTION_NO_ACTION,
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java
new file mode 100644
index 000000000..6711fa77e
--- /dev/null
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java
@@ -0,0 +1,13 @@
+package org.etsi.tfs.policy.policy.model;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class PolicyRuleBase {
+
+    protected PolicyRuleBasic policyRuleBasic;
+    protected List<String> deviceIds;
+    protected Boolean isValid;
+    protected String exceptionMessage;
+}
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleBasic.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java
similarity index 97%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleBasic.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java
index 7df894abd..305f0f262 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleBasic.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
@@ -72,7 +72,7 @@ public class PolicyRuleBasic {
         return isValid;
     }
 
-    public String getExeceptionMessage() {
+    public String getExceptionMessage() {
         return exceptionMessage;
     }
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleCondition.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java
similarity index 98%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleCondition.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java
index a293395af..716949196 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleCondition.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleDevice.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java
similarity index 73%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleDevice.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java
index f46635e87..9d33d3a0e 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleDevice.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
@@ -22,12 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 import org.etsi.tfs.policy.common.Util;
 
-public class PolicyRuleDevice {
-
-    private PolicyRuleBasic policyRuleBasic;
-    private List<String> deviceIds;
-    private Boolean isValid;
-    private String exceptionMessage;
+public class PolicyRuleDevice extends PolicyRuleBase {
 
     public PolicyRuleDevice(PolicyRuleBasic policyRuleBasic, List<String> deviceIds) {
 
@@ -48,22 +43,6 @@ public class PolicyRuleDevice {
         return isValid;
     }
 
-    public String getExeceptionMessage() {
-        return exceptionMessage;
-    }
-
-    public PolicyRuleBasic getPolicyRuleBasic() {
-        return policyRuleBasic;
-    }
-
-    public void setPolicyRuleBasic(PolicyRuleBasic policyRuleBasic) {
-        this.policyRuleBasic = policyRuleBasic;
-    }
-
-    public List<String> getDeviceIds() {
-        return deviceIds;
-    }
-
     @Override
     public String toString() {
         return String.format(
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java
similarity index 76%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleService.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java
index db25dc9bf..3c77477d2 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleService.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleService.java
@@ -14,22 +14,20 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
 import java.util.ArrayList;
 import java.util.List;
+import lombok.Data;
 import org.etsi.tfs.policy.common.Util;
 import org.etsi.tfs.policy.context.model.ServiceId;
 
-public class PolicyRuleService {
+@Data
+public class PolicyRuleService extends PolicyRuleBase {
 
-    private PolicyRuleBasic policyRuleBasic;
     private ServiceId serviceId;
-    private List<String> deviceIds;
-    private Boolean isValid;
-    private String exceptionMessage;
 
     public PolicyRuleService(
             PolicyRuleBasic policyRuleBasic, ServiceId serviceId, List<String> deviceIds) {
@@ -58,26 +56,6 @@ public class PolicyRuleService {
         return isValid;
     }
 
-    public String getExeceptionMessage() {
-        return exceptionMessage;
-    }
-
-    public PolicyRuleBasic getPolicyRuleBasic() {
-        return policyRuleBasic;
-    }
-
-    public void setPolicyRuleBasic(PolicyRuleBasic policyRuleBasic) {
-        this.policyRuleBasic = policyRuleBasic;
-    }
-
-    public ServiceId getServiceId() {
-        return serviceId;
-    }
-
-    public List<String> getDeviceIds() {
-        return deviceIds;
-    }
-
     @Override
     public String toString() {
         return String.format(
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleState.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java
similarity index 97%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleState.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java
index 3a2c5ba42..aa49d2406 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleState.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleState.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public class PolicyRuleState {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleStateEnum.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java
similarity index 95%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleStateEnum.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java
index 4e5349149..9d9603f2b 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleStateEnum.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public enum PolicyRuleStateEnum {
     POLICY_UNDEFINED,
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleType.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java
similarity index 94%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleType.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java
index b013e48ef..e090174a1 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleType.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public interface PolicyRuleType<T> {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeDevice.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java
similarity index 96%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeDevice.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java
index 34c4dc3f0..907d0b304 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeDevice.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public class PolicyRuleTypeDevice implements PolicyRuleType<PolicyRuleDevice> {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java
similarity index 96%
rename from src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeService.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java
index 88f83aa83..1ab3a7947 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/model/PolicyRuleTypeService.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleTypeService.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy.model;
+package org.etsi.tfs.policy.policy.model;
 
 public class PolicyRuleTypeService implements PolicyRuleType<PolicyRuleService> {
 
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionFieldsGetter.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java
similarity index 90%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionFieldsGetter.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java
index 06a7e6823..34bd3c948 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionFieldsGetter.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionFieldsGetter.java
@@ -14,14 +14,14 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy.service;
 
 import jakarta.inject.Singleton;
 import java.util.List;
 import java.util.stream.Collectors;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
 
 @Singleton
 public class PolicyRuleConditionFieldsGetter {
diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionValidator.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java
similarity index 97%
rename from src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionValidator.java
rename to src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java
index 6fd143c03..fe7c91726 100644
--- a/src/policy/src/main/java/org/etsi/tfs/policy/PolicyRuleConditionValidator.java
+++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/service/PolicyRuleConditionValidator.java
@@ -14,7 +14,7 @@
 * limitations under the License.
 */
 
-package org.etsi.tfs.policy;
+package org.etsi.tfs.policy.policy.service;
 
 import io.smallrye.mutiny.Uni;
 import jakarta.enterprise.context.ApplicationScoped;
@@ -26,7 +26,7 @@ import org.etsi.tfs.policy.context.model.Device;
 import org.etsi.tfs.policy.context.model.EndPointId;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
-import org.etsi.tfs.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
 import org.jboss.logging.Logger;
 
 @ApplicationScoped
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java
index 0f25bbd5b..283c95f75 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java
@@ -32,19 +32,21 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import org.etsi.tfs.policy.context.ContextService;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.PolicyServiceImpl;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java
index a829966f4..f693032d0 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java
@@ -35,20 +35,22 @@ import org.etsi.tfs.policy.context.ContextService;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
 import org.etsi.tfs.policy.context.model.ServiceTypeEnum;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRule;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.PolicyServiceImpl;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java
index 84c971f76..d4b156654 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java
@@ -33,22 +33,23 @@ import org.etsi.tfs.policy.context.ContextService;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
 import org.etsi.tfs.policy.context.model.ServiceTypeEnum;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRule;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
-import org.etsi.tfs.policy.model.PolicyRuleType;
-import org.etsi.tfs.policy.model.PolicyRuleTypeService;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.PolicyServiceImpl;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRule;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleType;
+import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java
index b5ee77244..1f5eaa037 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutException;
 import monitoring.Monitoring.KpiId;
 import org.etsi.tfs.policy.monitoring.model.FloatKpiValue;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
 import org.jboss.logging.Logger;
 import org.junit.jupiter.api.Test;
 import policy.Policy;
@@ -112,13 +113,13 @@ class PolicyGrpcServiceTest {
         final var expectedPolicyRuleConditions =
                 List.of(firstExpectedPolicyRuleCondition, secondExpectedPolicyRuleCondition);
 
-        org.etsi.tfs.policy.model.PolicyRuleActionConfig policyRuleActionConfig_1 =
-                new org.etsi.tfs.policy.model.PolicyRuleActionConfig("paramater1", "parameter2");
+        PolicyRuleActionConfig policyRuleActionConfig_1 =
+                new PolicyRuleActionConfig("paramater1", "parameter2");
         final var serializedPolicyRuleActionConfigList_1 =
                 serializer.serialize(policyRuleActionConfig_1);
 
-        org.etsi.tfs.policy.model.PolicyRuleActionConfig policyRuleActionConfig_2 =
-                new org.etsi.tfs.policy.model.PolicyRuleActionConfig("paramater3", "parameter4");
+        PolicyRuleActionConfig policyRuleActionConfig_2 =
+                new PolicyRuleActionConfig("paramater3", "parameter4");
         final var serializedPolicyRuleActionConfigList_2 =
                 serializer.serialize(policyRuleActionConfig_2);
 
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java
index 7f9693293..437a6e23a 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java
@@ -23,17 +23,17 @@ import io.quarkus.test.junit.QuarkusTest;
 import java.util.Collections;
 import java.util.List;
 import java.util.UUID;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
 import org.junit.jupiter.api.Test;
 
 // TODO: Revisit PolicyRuleBasicValidationTest cases after handling exceptions in PolicyRuleBasic
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java
index d81149725..d9ac7bdde 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleConditionValidationTest.java
@@ -21,13 +21,13 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 
 import io.quarkus.test.junit.QuarkusTest;
 import java.util.stream.Stream;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
 import org.etsi.tfs.policy.monitoring.model.BooleanKpiValue;
 import org.etsi.tfs.policy.monitoring.model.FloatKpiValue;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
 import org.etsi.tfs.policy.monitoring.model.StringKpiValue;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java
index e0e23c8a8..d7a7236fe 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java
@@ -21,18 +21,18 @@ import static org.assertj.core.api.Assertions.assertThat;
 import io.quarkus.test.junit.QuarkusTest;
 import java.util.List;
 import java.util.UUID;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
 import org.junit.jupiter.api.Test;
 
 @QuarkusTest
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java
index b936cae00..f449b7022 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java
@@ -42,18 +42,19 @@ import org.etsi.tfs.policy.context.model.LocationTypeRegion;
 import org.etsi.tfs.policy.context.model.ServiceId;
 import org.etsi.tfs.policy.context.model.TopologyId;
 import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java
index 34ea9bf32..8a1044676 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java
@@ -31,19 +31,21 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.PolicyServiceImpl;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java
index d50b708be..e0f68a28a 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java
@@ -35,19 +35,21 @@ import org.etsi.tfs.policy.context.ContextService;
 import org.etsi.tfs.policy.context.model.Service;
 import org.etsi.tfs.policy.context.model.ServiceId;
 import org.etsi.tfs.policy.context.model.ServiceTypeEnum;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.MonitoringService;
 import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValue;
+import org.etsi.tfs.policy.policy.PolicyServiceImpl;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
+import org.etsi.tfs.policy.policy.service.PolicyRuleConditionValidator;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java
index 8a7e35d6d..396706f36 100644
--- a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java
+++ b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java
@@ -85,17 +85,6 @@ import org.etsi.tfs.policy.context.model.ServiceTypeEnum;
 import org.etsi.tfs.policy.context.model.SliceId;
 import org.etsi.tfs.policy.context.model.TopologyId;
 import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType;
-import org.etsi.tfs.policy.model.BooleanOperator;
-import org.etsi.tfs.policy.model.NumericalOperator;
-import org.etsi.tfs.policy.model.PolicyRuleAction;
-import org.etsi.tfs.policy.model.PolicyRuleActionConfig;
-import org.etsi.tfs.policy.model.PolicyRuleActionEnum;
-import org.etsi.tfs.policy.model.PolicyRuleBasic;
-import org.etsi.tfs.policy.model.PolicyRuleCondition;
-import org.etsi.tfs.policy.model.PolicyRuleDevice;
-import org.etsi.tfs.policy.model.PolicyRuleService;
-import org.etsi.tfs.policy.model.PolicyRuleState;
-import org.etsi.tfs.policy.model.PolicyRuleStateEnum;
 import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor;
 import org.etsi.tfs.policy.monitoring.model.AlarmResponse;
 import org.etsi.tfs.policy.monitoring.model.BooleanKpiValue;
@@ -107,6 +96,17 @@ import org.etsi.tfs.policy.monitoring.model.KpiValue;
 import org.etsi.tfs.policy.monitoring.model.KpiValueRange;
 import org.etsi.tfs.policy.monitoring.model.StringKpiValue;
 import org.etsi.tfs.policy.monitoring.model.SubsDescriptor;
+import org.etsi.tfs.policy.policy.model.BooleanOperator;
+import org.etsi.tfs.policy.policy.model.NumericalOperator;
+import org.etsi.tfs.policy.policy.model.PolicyRuleAction;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig;
+import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum;
+import org.etsi.tfs.policy.policy.model.PolicyRuleBasic;
+import org.etsi.tfs.policy.policy.model.PolicyRuleCondition;
+import org.etsi.tfs.policy.policy.model.PolicyRuleDevice;
+import org.etsi.tfs.policy.policy.model.PolicyRuleService;
+import org.etsi.tfs.policy.policy.model.PolicyRuleState;
+import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
-- 
GitLab