diff --git a/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java b/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
index 8e89632..279a8bb 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/IntentTestsMocks.java
@@ -37,7 +37,7 @@
 import org.onosproject.net.flow.instructions.Instructions;
 import org.onosproject.net.resource.Bandwidth;
 import org.onosproject.net.resource.BandwidthResourceRequest;
-import org.onosproject.net.resource.Lambda;
+import org.onosproject.net.resource.LambdaResource;
 import org.onosproject.net.resource.LambdaResourceAllocation;
 import org.onosproject.net.resource.LambdaResourceRequest;
 import org.onosproject.net.resource.LinkResourceAllocations;
@@ -179,7 +179,7 @@
         @Override
         public Set<ResourceAllocation> getResourceAllocation(Link link) {
             return ImmutableSet.of(
-                    new LambdaResourceAllocation(Lambda.valueOf(77)),
+                    new LambdaResourceAllocation(LambdaResource.valueOf(77)),
                     new MplsLabelResourceAllocation(MplsLabel.valueOf(10)));
         }
 
diff --git a/core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java
index 16a5e9f..988b0b4 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/LinkCollectionIntentTest.java
@@ -26,7 +26,7 @@
 import org.onosproject.net.NetTestTools;
 import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.intent.constraint.LambdaConstraint;
-import org.onosproject.net.resource.Lambda;
+import org.onosproject.net.resource.LambdaResource;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.testing.EqualsTester;
@@ -132,7 +132,7 @@
         final LinkedList<Constraint> constraints = new LinkedList<>();
 
         links1.add(link("src", 1, "dst", 2));
-        constraints.add(new LambdaConstraint(Lambda.valueOf(23)));
+        constraints.add(new LambdaConstraint(LambdaResource.valueOf(23)));
         final LinkCollectionIntent collectionIntent =
                 LinkCollectionIntent.builder()
                         .appId(APP_ID)
diff --git a/core/api/src/test/java/org/onosproject/net/intent/constraint/ConstraintObjectsTest.java b/core/api/src/test/java/org/onosproject/net/intent/constraint/ConstraintObjectsTest.java
index 60006a7..4e549ea 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/constraint/ConstraintObjectsTest.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/constraint/ConstraintObjectsTest.java
@@ -18,7 +18,7 @@
 import org.junit.Test;
 import org.onosproject.net.Link;
 import org.onosproject.net.resource.Bandwidth;
-import org.onosproject.net.resource.Lambda;
+import org.onosproject.net.resource.LambdaResource;
 
 import com.google.common.testing.EqualsTester;
 
@@ -65,11 +65,11 @@
     // Lambda Constraint
 
     final LambdaConstraint lambdaConstraint1 =
-            new LambdaConstraint(Lambda.valueOf(100));
+            new LambdaConstraint(LambdaResource.valueOf(100));
     final LambdaConstraint lambdaConstraintSameAs1 =
-            new LambdaConstraint(Lambda.valueOf(100));
+            new LambdaConstraint(LambdaResource.valueOf(100));
     final LambdaConstraint lambdaConstraint2 =
-            new LambdaConstraint(Lambda.valueOf(200));
+            new LambdaConstraint(LambdaResource.valueOf(200));
 
     /**
      * Checks that the objects were created properly.
