diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
index dfca98b..f9bf42e 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LambdaConstraint.java
@@ -16,7 +16,7 @@
 package org.onosproject.net.intent.constraint;
 
 import org.onosproject.net.Link;
-import org.onosproject.net.resource.Lambda;
+import org.onosproject.net.resource.LambdaResource;
 import org.onosproject.net.resource.LinkResourceService;
 import org.onosproject.net.resource.ResourceRequest;
 import org.onosproject.net.resource.ResourceType;
@@ -30,14 +30,14 @@
  */
 public class LambdaConstraint extends BooleanConstraint {
 
-    private final Lambda lambda;
+    private final LambdaResource lambda;
 
     /**
      * Creates a new optical lambda constraint.
      *
      * @param lambda optional lambda to indicate a specific lambda
      */
-    public LambdaConstraint(Lambda lambda) {
+    public LambdaConstraint(LambdaResource lambda) {
         this.lambda = lambda;
     }
 
@@ -61,7 +61,7 @@
      *
      * @return required lambda
      */
-    public Lambda lambda() {
+    public LambdaResource lambda() {
         return lambda;
     }
 
diff --git a/core/api/src/main/java/org/onosproject/net/resource/Lambda.java b/core/api/src/main/java/org/onosproject/net/resource/LambdaResource.java
similarity index 79%
rename from core/api/src/main/java/org/onosproject/net/resource/Lambda.java
rename to core/api/src/main/java/org/onosproject/net/resource/LambdaResource.java
index 3555b12..aa14f70 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/Lambda.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LambdaResource.java
@@ -20,7 +20,7 @@
 /**
  * Representation of lambda resource.
  */
-public final class Lambda extends LinkResource {
+public final class LambdaResource extends LinkResource {
 
     private final int lambda;
 
@@ -29,12 +29,12 @@
      *
      * @param lambda lambda value to be assigned
      */
-    private Lambda(int lambda) {
+    private LambdaResource(int lambda) {
         this.lambda = lambda;
     }
 
     // Constructor for serialization
-    private Lambda() {
+    private LambdaResource() {
         this.lambda = 0;
     }
 
@@ -42,10 +42,10 @@
      * Creates a new instance with given lambda.
      *
      * @param lambda lambda value to be assigned
-     * @return {@link Lambda} instance with given lambda
+     * @return {@link LambdaResource} instance with given lambda
      */
-    public static Lambda valueOf(int lambda) {
-        return new Lambda(lambda);
+    public static LambdaResource valueOf(int lambda) {
+        return new LambdaResource(lambda);
     }
 
     /**
@@ -59,8 +59,8 @@
 
     @Override
     public boolean equals(Object obj) {
-        if (obj instanceof Lambda) {
-            Lambda that = (Lambda) obj;
+        if (obj instanceof LambdaResource) {
+            LambdaResource that = (LambdaResource) obj;
             return Objects.equals(this.lambda, that.lambda);
         }
         return false;
diff --git a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
index e564059..e34dab5 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/LambdaResourceAllocation.java
@@ -24,7 +24,7 @@
  */
 public class LambdaResourceAllocation extends LambdaResourceRequest
         implements ResourceAllocation {
-    private final Lambda lambda;
+    private final LambdaResource lambda;
 
     @Override
     public ResourceType type() {
@@ -32,12 +32,12 @@
     }
 
     /**
-     * Creates a new {@link LambdaResourceAllocation} with {@link Lambda}
+     * Creates a new {@link LambdaResourceAllocation} with {@link LambdaResource}
      * object.
      *
      * @param lambda allocated lambda
      */
-    public LambdaResourceAllocation(Lambda lambda) {
+    public LambdaResourceAllocation(LambdaResource lambda) {
         this.lambda = lambda;
     }
 
@@ -46,7 +46,7 @@
      *
      * @return the lambda resource
      */
-    public Lambda lambda() {
+    public LambdaResource lambda() {
         return lambda;
     }
 
