diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
index 1a6ee30..d42ce99 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
@@ -24,6 +24,7 @@
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
+import org.onosproject.net.ResourceGroup;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -48,8 +49,9 @@
                               OchSignal lambda,
                               OchSignalType signalType,
                               boolean isBidirectional,
-                              int priority) {
-        super(appId, key, ImmutableSet.copyOf(path.links()), priority);
+                              int priority,
+                              ResourceGroup resourceGroup) {
+        super(appId, key, ImmutableSet.copyOf(path.links()), priority, resourceGroup);
         this.src = checkNotNull(src);
         this.dst = checkNotNull(dst);
         this.path = checkNotNull(path);
@@ -104,6 +106,11 @@
             return (Builder) super.priority(priority);
         }
 
+        @Override
+        public Builder resourceGroup(ResourceGroup resourceGroup) {
+            return (Builder) super.resourceGroup(resourceGroup);
+        }
+
         /**
          * Sets the source for the intent that will be built.
          *
@@ -186,7 +193,8 @@
                     lambda,
                     signalType,
                     isBidirectional,
-                    priority
+                    priority,
+                    resourceGroup
             );
         }
     }
