Add unit tests PCE RPC path-computation-reroute
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / utils / PceTestData.java
index d471002dba9c10a8f3625d42a6ad65f478aea132..1921c3c0246473fd87b43589d922f19df4efc818 100644 (file)
@@ -7,54 +7,51 @@
  */
 package org.opendaylight.transportpce.pce.utils;
 
-import java.util.Arrays;
-
+import java.util.Map;
+import java.util.Set;
 import org.opendaylight.transportpce.common.ResponseCodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEnd;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirection;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.CoRoutingBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.GeneralBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescription;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
-
-
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRerouteRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRerouteRequestInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.request.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.reroute.request.input.EndpointsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.CoRoutingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.DiversityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.ExcludeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.IncludeBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.LatencyBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co.routing.ServiceIdentifierListBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity.existing.service.constraints.ServiceIdentifierListKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.service.applicability.g.ServiceApplicabilityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.PceMetric;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescription;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescriptionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
+import org.opendaylight.yangtools.yang.common.Decimal64;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint8;
 
 public final class PceTestData {
 
@@ -62,241 +59,398 @@ public final class PceTestData {
     }
 
     public static PathComputationRequestInput getEmptyPCERequest() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
-                .setRequestId("request1")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .build();
-        return input;
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(
+                new ServiceHandlerHeaderBuilder()
+                    .setRequestId("request1")
+                    .build())
+            .build();
     }
 
     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
-                .setRequestId("request1")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceName("serviceName")
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .build();
-        return input;
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("serviceName")
+            .setServiceHandlerHeader(
+                new ServiceHandlerHeaderBuilder()
+                    .setRequestId("request1")
+                    .build())
+            .build();
     }
 
     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceName("serviceName")
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .build();
-        return input;
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("serviceName")
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().build())
+            .build();
+    }
+
+    public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("service1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
+                .setRequestId("request1")
+                .build())
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceFormat(ServiceFormat.ODU)
+                .setServiceRate(Uint32.valueOf(100))
+                .setClli("clli11")
+                .setNodeId("XPONDER-2-2")
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceFormat(ServiceFormat.ODU)
+                .setServiceRate(Uint32.valueOf(0))
+                .setClli("Some clli11")
+                .setNodeId("XPONDER-1-2")
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .setSoftConstraints(new SoftConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .build();
     }
 
     public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("service1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
+                .build())
+            .setServiceAEnd(new ServiceAEndBuilder()
                 .setServiceFormat(ServiceFormat.Ethernet)
-                .setServiceRate(100L)
+                .setServiceRate(Uint32.valueOf(100))
                 .setClli("clli11")
                 .setNodeId("XPONDER-2-2")
-                .setTxDirection(new TxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .setRxDirection(new RxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
                 .setServiceFormat(ServiceFormat.Ethernet)
-                .setServiceRate(0L)
+                .setServiceRate(Uint32.valueOf(0))
                 .setClli("Some clli11")
                 .setNodeId("XPONDER-1-2")
-                .setTxDirection(new TxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .setRxDirection(new RxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceName("service1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setLocallyProtectedLinks(true)
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(new HardConstraintsBuilder()
-                        .setCustomerCode(Arrays.asList("Some customer-code"))
-                        .setCoRoutingOrGeneral(new CoRoutingBuilder()
-                                .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
-                                        .transportpce.b.c._interface.routing.constraints.rev171017
-                                        .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
-                                        .setExistingService(Arrays.asList("Some existing-service"))
-
-                                        .build())
-                                .build())
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
                         .build())
-                .setSoftConstraints(new SoftConstraintsBuilder()
-                        .setCustomerCode(Arrays.asList("Some customer-code"))
-                        .setCoRoutingOrGeneral(new CoRoutingBuilder()
-                                .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
-                                        .transportpce.b.c._interface.routing.constraints.rev171017
-                                        .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
-                                        .setExistingService(Arrays.asList("Some existing-service"))
-                                        .build())
-                                .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
                         .build())
-                .build();
-        return input;
+                    .build())
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .setSoftConstraints(new SoftConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .build();
     }
 
     public static PathComputationRequestInput getPCERequest() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("service1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
+                .build())
+            .setServiceAEnd(new ServiceAEndBuilder()
                 .setServiceFormat(ServiceFormat.Ethernet)
-                .setServiceRate(100L)
+                .setServiceRate(Uint32.valueOf(100))
                 .setClli("clli11")
                 .setNodeId("XPONDER-2-2")
-                .setTxDirection(new TxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .setRxDirection(new RxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
                 .setServiceFormat(ServiceFormat.Ethernet)
-                .setServiceRate(0L)
+                .setServiceRate(Uint32.valueOf(0))
                 .setClli("Some clli11")
                 .setNodeId("XPONDER-1-2")
-                .setTxDirection(new TxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .setRxDirection(new RxDirectionBuilder().setPort(
-                        new PortBuilder()
-                                .setPortDeviceName("Some port-device-name")
-                                .setPortType("Some port-type")
-                                .setPortName("Some port-name")
-                                .setPortRack("Some port-rack")
-                                .setPortShelf("Some port-shelf")
-                                .setPortSlot("Some port-slot")
-                                .setPortSubSlot("Some port-sub-slot")
-                                .build()
-                ).build())
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceName("service1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setLocallyProtectedLinks(true)
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(new HardConstraintsBuilder()
-                        .setCustomerCode(Arrays.asList("Some customer-code"))
-                        .setCoRoutingOrGeneral(new CoRoutingBuilder()
-                                .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
-                                        .transportpce.b.c._interface.routing.constraints.rev171017
-                                        .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
-                                        .setExistingService(Arrays.asList("Some existing-service"))
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .setSoftConstraints(new SoftConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .build();
+    }
+
+    public static PathComputationRerouteRequestInput getPCERerouteRequest() {
+        return new PathComputationRerouteRequestInputBuilder()
+                .setPceRoutingMetric(PceMetric.HopCount)
+                .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
+                        .setRequestId("request1")
+                        .build())
+                .setServiceAEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808
+                        .path.computation.reroute.request.input.ServiceAEndBuilder()
+                        .setServiceFormat(ServiceFormat.Ethernet)
+                        .setServiceRate(Uint32.valueOf(100))
+                        .setClli("clli11")
+                        .setNodeId("XPONDER-2-2")
+                        .setTxDirection(new TxDirectionBuilder()
+                                .setPort(new PortBuilder()
+                                        .setPortDeviceName("Some port-device-name")
+                                        .setPortType("Some port-type")
+                                        .setPortName("Some port-name")
+                                        .setPortRack("Some port-rack")
+                                        .setPortShelf("Some port-shelf")
+                                        .setPortSlot("Some port-slot")
+                                        .setPortSubSlot("Some port-sub-slot")
+                                        .build())
+                                .build())
+                        .setRxDirection(new RxDirectionBuilder()
+                                .setPort(new PortBuilder()
+                                        .setPortDeviceName("Some port-device-name")
+                                        .setPortType("Some port-type")
+                                        .setPortName("Some port-name")
+                                        .setPortRack("Some port-rack")
+                                        .setPortShelf("Some port-shelf")
+                                        .setPortSlot("Some port-slot")
+                                        .setPortSubSlot("Some port-sub-slot")
                                         .build())
                                 .build())
                         .build())
-                .setSoftConstraints(new SoftConstraintsBuilder()
-                        .setCustomerCode(Arrays.asList("Some customer-code"))
-                        .setCoRoutingOrGeneral(new CoRoutingBuilder()
-                                .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
-                                        .transportpce.b.c._interface.routing.constraints.rev171017
-                                        .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
-                                        .setExistingService(Arrays.asList("Some existing-service"))
+                .setServiceZEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808
+                        .path.computation.reroute.request.input.ServiceZEndBuilder()
+                        .setServiceFormat(ServiceFormat.Ethernet)
+                        .setServiceRate(Uint32.valueOf(0))
+                        .setClli("Some clli11")
+                        .setNodeId("XPONDER-1-2")
+                        .setTxDirection(new TxDirectionBuilder()
+                                .setPort(new PortBuilder()
+                                        .setPortDeviceName("Some port-device-name")
+                                        .setPortType("Some port-type")
+                                        .setPortName("Some port-name")
+                                        .setPortRack("Some port-rack")
+                                        .setPortShelf("Some port-shelf")
+                                        .setPortSlot("Some port-slot")
+                                        .setPortSubSlot("Some port-sub-slot")
+                                        .build())
+                                .build())
+                        .setRxDirection(new RxDirectionBuilder()
+                                .setPort(new PortBuilder()
+                                        .setPortDeviceName("Some port-device-name")
+                                        .setPortType("Some port-type")
+                                        .setPortName("Some port-name")
+                                        .setPortRack("Some port-rack")
+                                        .setPortShelf("Some port-shelf")
+                                        .setPortSlot("Some port-slot")
+                                        .setPortSubSlot("Some port-sub-slot")
                                         .build())
                                 .build())
                         .build())
+                .setHardConstraints(new HardConstraintsBuilder()
+                        .setCustomerCode(Set.of("Some customer-code"))
+                        .setCoRouting(new CoRoutingBuilder()
+                                .setServiceIdentifierList(Map.of(
+                                        new org.opendaylight.yang.gen.v1
+                                                .http.org.openroadm.routing.constraints.rev211210
+                                                .constraints.co.routing.ServiceIdentifierListKey("test"),
+                                        new ServiceIdentifierListBuilder().setServiceIdentifier("test").build()))
+                                .build())
+                        .build())
+                .setSoftConstraints(new SoftConstraintsBuilder()
+                        .setCustomerCode(Set.of("Some customer-code"))
+                        .setCoRouting(new CoRoutingBuilder()
+                                .setServiceIdentifierList(Map.of(
+                                        new org.opendaylight.yang.gen.v1
+                                                .http.org.openroadm.routing.constraints.rev211210
+                                                .constraints.co.routing.ServiceIdentifierListKey("test"),
+                                        new ServiceIdentifierListBuilder().setServiceIdentifier("test").build()))
+                                .build())
+                        .build())
+                .setEndpoints(new EndpointsBuilder()
+                        .setAEndTp("AendTP")
+                        .setZEndTp("ZendTP")
+                        .build())
                 .build();
-        return input;
     }
 
     public static PathComputationRequestOutput getFailedPCEResultYes() {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-                .setAckFinalIndicator("Yes")
-                .setRequestId("request1")
-                .setResponseCode("Path not calculated")
-                .setResponseMessage("Service Name is not set");
-        outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
-                .setResponseParameters(null);
-        return outputBuilder.build();
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(
+                new ConfigurationResponseCommonBuilder()
+                    .setAckFinalIndicator("Yes")
+                    .setRequestId("request1")
+                    .setResponseCode("Path not calculated")
+                    .setResponseMessage("Service Name is not set")
+                    .build())
+            .setResponseParameters(null)
+            .build();
     }
 
     public static PathComputationRequestOutput getPCEResultOk(Long wl) {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ResponseParameters responseParameters = new ResponseParametersBuilder()
-                .setPathDescription(createPathDescription(0L, wl, 0L, wl))
-                .build();
-        outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
-                .setResponseParameters(responseParameters);
-        return outputBuilder.build();
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(createCommonSuccessResponse())
+            .setResponseParameters(
+                new ResponseParametersBuilder()
+                    .setPathDescription(createPathDescription(0L, wl, 0L, wl))
+                    .build())
+            .build();
     }
 
     /**
@@ -319,46 +473,40 @@ public final class PceTestData {
      * "pce:pce-metric": "hop-count"
      * }
      * }</code>
-     *
      * @return input PathComputationRequestInput data
      */
     public static PathComputationRequestInput getPCE_test1_request_54() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request 1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceName("service 1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-1-2")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-3-2")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceName("service 1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .build();
-        return input;
+                .build())
+            .build();
     }
 
     /**
      * Generate Data for Test 1 result 5-4.
-     *
-     * @param wl WaveLength
-     * @return output PathComputationRequestOutput data
+     * @param  wl WaveLength
+     * @return    output PathComputationRequestOutput data
      */
     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ResponseParameters responseParameters = new ResponseParametersBuilder()
-                .setPathDescription(createPathDescription(0L, wl, 0L, wl))
-                .build();
-        outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
-                .setResponseParameters(responseParameters);
-        return outputBuilder.build();
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(createCommonSuccessResponse())
+            .setResponseParameters(
+                new ResponseParametersBuilder()
+                    .setPathDescription(createPathDescription(0L, wl, 0L, wl))
+                    .build())
+            .build();
     }
 
     /**
@@ -386,62 +534,82 @@ public final class PceTestData {
      * "pce:pce-metric": "hop-count"
      * }
      * }</code>
-     *
      * @return input PathComputationRequestInput data
      */
     public static PathComputationRequestInput getPCE_test2_request_54() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request 1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceName("service 1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-1-2")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-3-2")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceName("service 1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(new HardConstraintsBuilder()
-                        .setCoRoutingOrGeneral(new GeneralBuilder()
-                                .setExclude(new ExcludeBuilder()
-                                        .setNodeId(Arrays.asList("OpenROADM-2-2"))
-                                        .build())
-                                .setLatency(new LatencyBuilder()
-                                        .setMaxLatency(3223L).build())
-                                .setInclude(new IncludeBuilder()
-                                        .setOrderedHops(
-                                                Arrays.asList(new OrderedHopsBuilder()
-                                                        .setHopNumber(22)
-                                                        // .setHopType(new HopTypeBuilder()
-                                                        // .setHopType(new ClliBuilder().getClli())
-                                                        .build()))
-                                        .build())
-                                .build())
-                        .build())
-                .build();
-        return input;
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setExclude(new ExcludeBuilder()
+                    .setNodeId(Set.of(new NodeIdType("OpenROADM-2-2")))
+                    .build())
+                .setInclude(new IncludeBuilder()
+                    .setNodeId(Set.of(new NodeIdType("XPONDER-1-2")))
+                    .build())
+                .setLatency(new LatencyBuilder()
+                    .setMaxLatency(Decimal64.valueOf("3223"))
+                    .build())
+                .build())
+            .build();
     }
 
     /**
      * Generate Data for Test 2 result 5-4.
-     *
      * @return output PathComputationRequestOutput data
      */
     public static PathComputationRequestOutput getPCE_test2_result_54() {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ResponseParameters responseParameters = new ResponseParametersBuilder()
-                .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(createCommonSuccessResponse())
+            .setResponseParameters(
+                new ResponseParametersBuilder()
+                    .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
+                    .build())
+            .build();
+    }
+
+    public static PathComputationRerouteRequestInput getPCEReroute() {
+        return new PathComputationRerouteRequestInputBuilder()
+                .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
+                        .setRequestId("request 1")
+                        .build())
+                .setPceRoutingMetric(PceMetric.HopCount)
+                .setServiceAEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808
+                        .path.computation.reroute.request.input.ServiceAEndBuilder()
+                        .setServiceRate(Uint32.valueOf(100))
+                        .setServiceFormat(ServiceFormat.Ethernet)
+                        .setNodeId("XPONDER-1-2")
+                        .build())
+                .setServiceZEnd(new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808
+                        .path.computation.reroute.request.input.ServiceZEndBuilder()
+                        .setServiceRate(Uint32.valueOf(0))
+                        .setServiceFormat(ServiceFormat.Ethernet)
+                        .setNodeId("XPONDER-3-2")
+                        .build())
+                .setHardConstraints(new HardConstraintsBuilder()
+                        .setExclude(new ExcludeBuilder()
+                                .setNodeId(Set.of(
+                                        new NodeIdType("OpenROADM-2-1"),
+                                        new NodeIdType("OpenROADM-2-2")))
+                                .build())
+                        .build())
+                .setEndpoints(new EndpointsBuilder()
+                        .setAEndTp("AendTP")
+                        .setZEndTp("ZendTP")
+                        .build())
                 .build();
-        outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
-                .setResponseParameters(responseParameters);
-        return outputBuilder.build();
     }
 
     /**
@@ -469,140 +637,119 @@ public final class PceTestData {
      * "pce:pce-metric": "hop-count"
      * }
      * }</code>
-     *
      * @return input PathComputationRequestInput data
      */
     public static PathComputationRequestInput getPCE_test3_request_54() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request 1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceName("service 1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(100))
+                .setServiceFormat(ServiceFormat.Ethernet)
                 .setNodeId("XPONDER-1-2")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
+                .setServiceFormat(ServiceFormat.Ethernet)
                 .setNodeId("XPONDER-3-2")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceName("service 1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(new HardConstraintsBuilder()
-                        .setCoRoutingOrGeneral(new GeneralBuilder()
-                                .setExclude(new ExcludeBuilder()
-                                        .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
-                                        .build())
-                                .build())
-                        .build())
-                .build();
-        return input;
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setExclude(new ExcludeBuilder()
+                    .setNodeId(Set.of(
+                        new NodeIdType("OpenROADM-2-1"),
+                        new NodeIdType("OpenROADM-2-2")))
+                    .build())
+                .build())
+            .build();
     }
 
     /**
      * Generate Data for Test 3 result 5-4.
-     *
      * @return output PathComputationRequestOutput data
      */
     public static PathComputationRequestOutput getPCE_test3_result_54() {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ResponseParameters responseParameters = new ResponseParametersBuilder()
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(createCommonSuccessResponse())
+            .setResponseParameters(new ResponseParametersBuilder()
                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
-                .build();
-        outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
-                .setResponseParameters(responseParameters);
-        return outputBuilder.build();
+                .build())
+            .build();
     }
 
     public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request 1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceName("service 1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-1-2")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-3-2")
-                .build();
-        HardConstraints hardConstrains = new HardConstraintsBuilder().build();
-        SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceName("service 1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(hardConstrains)
-                .setSoftConstraints(softConstraints)
-                .build();
-        return input;
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder().build())
+            .setSoftConstraints(new SoftConstraintsBuilder().build())
+            .build();
     }
 
     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
-        ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
+        return new PathComputationRequestInputBuilder()
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
                 .setRequestId("request 1")
-                .build();
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceName("service 1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-1-2")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-3-2")
-                .build();
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder()
-                .setServiceHandlerHeader(serviceHandlerHeader)
-                .setServiceName("service 1")
-                .setResourceReserve(true)
-                .setPceMetric(PceMetric.HopCount)
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .build();
-        return input;
+                .build())
+            .build();
     }
 
     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
-        PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
-        ResponseParameters responseParameters = new ResponseParametersBuilder()
+        return new PathComputationRequestOutputBuilder()
+            .setConfigurationResponseCommon(createCommonSuccessResponse())
+            .setResponseParameters(new ResponseParametersBuilder()
                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
-                .build();
-        outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
-                .setResponseParameters(responseParameters);
-        return outputBuilder.build();
+                .build())
+            .build();
     }
 
     private static ConfigurationResponseCommon createCommonSuccessResponse() {
-        ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-                .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
-                .setRequestId("request 1")
-                .setResponseCode(ResponseCodes.RESPONSE_OK)
-                .setResponseMessage("Path is calculated");
-        return configurationResponseCommon.build();
+        return new ConfigurationResponseCommonBuilder()
+            .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
+            .setRequestId("request 1")
+            .setResponseCode(ResponseCodes.RESPONSE_OK)
+            .setResponseMessage("Path is calculated")
+            .build();
     }
 
     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
                                                          long zaWaveLength) {
-        AToZDirection atozDirection = new AToZDirectionBuilder()
-                .setRate(azRate)
-                .setAToZWavelengthNumber(azWaveLength)
-                .setAToZ(null)
-                .build();
-        ZToADirection ztoaDirection = new ZToADirectionBuilder()
-                .setRate(zaRate)
-                .setZToAWavelengthNumber(zaWaveLength)
-                .setZToA(null)
-                .build();
-        PathDescription pathDescription = new PathDescriptionBuilder()
-                .setAToZDirection(atozDirection)
-                .setZToADirection(ztoaDirection)
-                .build();
-        return pathDescription;
+        return new PathDescriptionBuilder()
+            .setAToZDirection(new AToZDirectionBuilder()
+                .setRate(Uint32.valueOf(azRate))
+                .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
+                .build())
+            .setZToADirection(new ZToADirectionBuilder()
+                .setRate(Uint32.valueOf(zaRate))
+                .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
+                .build())
+            .build();
     }
 
     /**
@@ -633,85 +780,170 @@ public final class PceTestData {
      * "pce:pce-metric": "hop-count"
      * }
      * }</code>
-     *
-     * @param base Path Computation Request Input base
-     * @return input PathComputationRequestInput data
+     * @param  base Path Computation Request Input base
+     * @return      input PathComputationRequestInput data
      */
     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
-
-        ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
-                .setNode(true).build();
-
-        ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
-                .setServiceRate(0L)
+        return new PathComputationRequestInputBuilder(base)
+            .setServiceName("service 2")
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-1-1")
-                .build();
-        ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
-                .setServiceRate(0L)
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceRate(Uint32.valueOf(0))
                 .setNodeId("XPONDER-3-1")
-                .build();
-
-        PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
-                .setServiceName("service 2")
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setHardConstraints(new HardConstraintsBuilder()
-                        .setCoRoutingOrGeneral(new GeneralBuilder()
-                                .setDiversity(new DiversityBuilder()
-                                        .setExistingService(Arrays.asList(base.getServiceName()))
-                                        .setExistingServiceApplicability(nodeTrue)
-                                        .build())
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setLatency(new LatencyBuilder()
+                    .setMaxLatency(Decimal64.valueOf("3223"))
+                    .build())
+                .setDiversity(new DiversityBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new ServiceIdentifierListKey(base.getServiceName()),
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity
+                                .existing.service.constraints.ServiceIdentifierListBuilder()
+                            .setServiceIndentifier(base.getServiceName())
+                            .setServiceApplicability(new ServiceApplicabilityBuilder()
+                                .setNode(true)
                                 .build())
-                        .build())
-                .build();
-        return input;
+                            .build()))
+                    .build())
+                .build())
+            .build();
     }
 
     public static ServiceCreateInput buildServiceCreateInput() {
+        return new ServiceCreateInputBuilder()
+            .setCommonId("commonId")
+            .setConnectionType(ConnectionType.Service)
+            .setCustomer("Customer")
+            .setServiceName("service 1")
+            .setServiceAEnd(
+                new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
+                        .ServiceAEndBuilder()
+                    .setClli("clli")
+                    .setServiceRate(Uint32.valueOf(0))
+                    .setNodeId(new NodeIdType("XPONDER-1-2"))
+                    .setTxDirection(Map.of(
+                        new TxDirectionKey(Uint8.ZERO),
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service
+                                .endpoint.TxDirectionBuilder()
+                            .setPort(new PortBuilder().build())
+                            .build()))
+                    .setRxDirection(Map.of(
+                        new RxDirectionKey(Uint8.ZERO),
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service
+                                .endpoint.RxDirectionBuilder()
+                            .setPort(new PortBuilder().build())
+                            .build()))
+                    .build())
+            .setServiceZEnd(
+                new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
+                        .ServiceZEndBuilder()
+                    .setClli("clli")
+                    .setServiceRate(Uint32.valueOf(0))
+                    .setNodeId(new NodeIdType("XPONDER-3-2"))
+                    .setTxDirection(Map.of(
+                        new TxDirectionKey(Uint8.ZERO),
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service
+                                .endpoint.TxDirectionBuilder()
+                            .setPort(new PortBuilder().build())
+                            .build()))
+                    .setRxDirection(Map.of(
+                        new RxDirectionKey(Uint8.ZERO),
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service
+                                .endpoint.RxDirectionBuilder()
+                            .setPort(new PortBuilder().build())
+                            .build()))
+                    .build())
+            .setSdncRequestHeader(
+                new SdncRequestHeaderBuilder()
+                    .setRequestId("request 1")
+                    .build())
+            .build();
+    }
 
-        org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
-                new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
-                        .service.create.input.ServiceAEndBuilder()
-                        .setClli("clli")
-                        .setServiceRate((long) 0)
-                        .setNodeId(new NodeIdType("XPONDER-1-2"))
-                        .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
-                                .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
-                                .setPort(new PortBuilder().build())
-                                .build())
-                        .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
-                                .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
-                                .setPort(new PortBuilder().build())
-                                .build())
-                        .build();
-
-        org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
-                new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
-                        .service.create.input.ServiceZEndBuilder()
-                        .setClli("clli")
-                        .setServiceRate((long) 0)
-                        .setNodeId(new NodeIdType("XPONDER-3-2"))
-                        .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
-                                .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
-                                .setPort(new PortBuilder().build())
-                                .build())
-                        .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
-                                .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
-                                .setPort(new PortBuilder().build())
-                                .build())
-                        .build();
-
-        ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
-                .setCommonId("commonId")
-                .setConnectionType(ConnectionType.Service)
-                .setCustomer("Customer")
-                .setServiceName("service 1")
-                .setServiceAEnd(serviceAEnd)
-                .setServiceZEnd(serviceZEnd)
-                .setSdncRequestHeader(new SdncRequestHeaderBuilder()
-                        .setRequestId("request 1")
-                        .build());
-
-        return builtInput.build();
+    public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
+        return new PathComputationRequestInputBuilder()
+            .setServiceName("service1")
+            .setResourceReserve(true)
+            .setPceRoutingMetric(PceMetric.HopCount)
+            .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("request1").build())
+            .setServiceAEnd(new ServiceAEndBuilder()
+                .setServiceFormat(ServiceFormat.Ethernet)
+                .setServiceRate(Uint32.valueOf(100))
+                .setClli("clli11")
+                .setNodeId(nodeA)
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setServiceZEnd(new ServiceZEndBuilder()
+                .setServiceFormat(ServiceFormat.Ethernet)
+                .setServiceRate(Uint32.valueOf(0))
+                .setClli("Some clli11")
+                .setNodeId(nodeZ)
+                .setTxDirection(new TxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .setRxDirection(new RxDirectionBuilder()
+                    .setPort(new PortBuilder()
+                        .setPortDeviceName("Some port-device-name")
+                        .setPortType("Some port-type")
+                        .setPortName("Some port-name")
+                        .setPortRack("Some port-rack")
+                        .setPortShelf("Some port-shelf")
+                        .setPortSlot("Some port-slot")
+                        .setPortSubSlot("Some port-sub-slot")
+                        .build())
+                    .build())
+                .build())
+            .setHardConstraints(new HardConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .setSoftConstraints(new SoftConstraintsBuilder()
+                .setCustomerCode(Set.of("Some customer-code"))
+                .setCoRouting(new CoRoutingBuilder()
+                    .setServiceIdentifierList(Map.of(
+                        new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
+                                .routing.ServiceIdentifierListKey("Some existing-service"),
+                        new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
+                    .build())
+                .build())
+            .build();
     }
 }