diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalCircuitIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalCircuitIntent.java
index 5f95d70..6e0f6eb 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalCircuitIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalCircuitIntent.java
@@ -32,6 +32,7 @@
     private final ConnectPoint src;
     private final ConnectPoint dst;
     private final OduCltPort.SignalType signalType;
+    private final boolean isBidirectional;
 
     /**
      * Creates an optical circuit intent between the specified
@@ -45,11 +46,12 @@
      * @param priority priority to use for flows from this intent
      */
     protected OpticalCircuitIntent(ApplicationId appId, Key key, ConnectPoint src, ConnectPoint dst,
-                                   OduCltPort.SignalType signalType, int priority) {
+                                   OduCltPort.SignalType signalType, boolean isBidirectional, int priority) {
         super(appId, key, Collections.emptyList(), priority);
         this.src = checkNotNull(src);
         this.dst = checkNotNull(dst);
         this.signalType = checkNotNull(signalType);
+        this.isBidirectional = isBidirectional;
     }
 
     /**
@@ -69,6 +71,7 @@
         private ConnectPoint src;
         private ConnectPoint dst;
         private OduCltPort.SignalType signalType;
+        private boolean isBidirectional;
 
         @Override
         public Builder appId(ApplicationId appId) {
@@ -119,6 +122,17 @@
         }
 
         /**
+         * Sets the directionality of the intent.
+         *
+         * @param isBidirectional true if bidirectional, false if unidirectional
+         * @return this builder
+         */
+        public Builder bidirectional(boolean isBidirectional) {
+            this.isBidirectional = isBidirectional;
+            return this;
+        }
+
+        /**
          * Builds an optical circuit intent from the accumulated parameters.
          *
          * @return point to point intent
@@ -131,6 +145,7 @@
                     src,
                     dst,
                     signalType,
+                    isBidirectional,
                     priority
             );
         }
@@ -144,6 +159,7 @@
         this.src = null;
         this.dst = null;
         this.signalType = null;
+        this.isBidirectional = false;
     }
 
     /**
@@ -173,6 +189,15 @@
         return signalType;
     }
 
+    /**
+     * Returns the directionality of the intent.
+     *
+     * @return true if bidirectional, false if unidirectional
+     */
+    public boolean isBidirectional() {
+        return isBidirectional;
+    }
+
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(this)
@@ -184,6 +209,7 @@
                 .add("src", src)
                 .add("dst", dst)
                 .add("signalType", signalType)
+                .add("isBidirectional", isBidirectional)
                 .toString();
     }
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
index f28fd29..fee65ee 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
@@ -32,6 +32,7 @@
     private final ConnectPoint src;
     private final ConnectPoint dst;
     private final OduSignalType signalType;
+    private final boolean isBidirectional;
 
     /**
      * Creates an optical connectivity intent between the specified
@@ -41,6 +42,7 @@
      * @param key intent key
      * @param src the source transponder port
      * @param dst the destination transponder port
+     * @param isBidirectional indicates if intent is unidirectional
      * @param priority priority to use for flows from this intent
      */
     protected OpticalConnectivityIntent(ApplicationId appId,
@@ -48,11 +50,13 @@
                                         ConnectPoint src,
                                         ConnectPoint dst,
                                         OduSignalType signalType,
+                                        boolean isBidirectional,
                                         int priority) {
         super(appId, key, Collections.emptyList(), priority);
         this.src = checkNotNull(src);
         this.dst = checkNotNull(dst);
         this.signalType = checkNotNull(signalType);
+        this.isBidirectional = isBidirectional;
     }
 
     /**
@@ -72,6 +76,7 @@
         private ConnectPoint src;
         private ConnectPoint dst;
         private OduSignalType signalType;
+        private boolean isBidirectional;
 
         @Override
         public Builder appId(ApplicationId appId) {
@@ -122,6 +127,17 @@
         }
 
         /**
+         * Sets the directionality of the intent.
+         *
+         * @param isBidirectional true if bidirectional, false if unidirectional
+         * @return this builder
+         */
+        public Builder bidirectional(boolean isBidirectional) {
+            this.isBidirectional = isBidirectional;
+            return this;
+        }
+
+        /**
          * Builds an optical connectivity intent from the accumulated parameters.
          *
          * @return point to point intent
@@ -134,6 +150,7 @@
                     src,
                     dst,
                     signalType,
+                    isBidirectional,
                     priority
             );
         }
@@ -147,6 +164,7 @@
         this.src = null;
         this.dst = null;
         this.signalType = null;
+        this.isBidirectional = false;
     }
 
     /**
@@ -176,6 +194,15 @@
         return signalType;
     }
 
+    /**
+     * Returns the directionality of the intent.
+     *
+     * @return true if bidirectional, false if unidirectional
+     */
+    public boolean isBidirectional() {
+        return isBidirectional;
+    }
+
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(this)
@@ -187,6 +214,7 @@
                 .add("src", src)
                 .add("dst", dst)
                 .add("signalType", signalType)
+                .add("isBidirectional", isBidirectional)
                 .toString();
     }
 }
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 1290a34..0dfb77f 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
@@ -33,6 +33,7 @@
     private final Path path;
     private final OchSignal lambda;
     private final OchSignalType signalType;
+    private final boolean isBidirectional;
 
     private OpticalPathIntent(ApplicationId appId,
                               Key key,
@@ -41,6 +42,7 @@
                               Path path,
                               OchSignal lambda,
                               OchSignalType signalType,
+                              boolean isBidirectional,
                               int priority) {
         super(appId, key, ImmutableSet.copyOf(path.links()), priority);
         this.src = checkNotNull(src);
@@ -48,6 +50,7 @@
         this.path = checkNotNull(path);
         this.lambda = checkNotNull(lambda);
         this.signalType = checkNotNull(signalType);
+        this.isBidirectional = isBidirectional;
     }
 
     protected OpticalPathIntent() {
@@ -56,6 +59,7 @@
         this.path = null;
         this.lambda = null;
         this.signalType = null;
+        this.isBidirectional = true;
     }
 
     /**
@@ -77,6 +81,7 @@
         private Path path;
         private OchSignal lambda;
         private OchSignalType signalType;
+        private boolean isBidirectional;
         Key key;
 
         @Override
@@ -150,6 +155,15 @@
         }
 
         /**
+         * Sets the intent's direction.
+         * @return this builder
+         */
+        public Builder bidirectional(boolean isBidirectional) {
+            this.isBidirectional = isBidirectional;
+            return this;
+        }
+
+        /**
          * Builds an optical path intent from the accumulated parameters.
          *
          * @return optical path intent
@@ -164,6 +178,7 @@
                     path,
                     lambda,
                     signalType,
+                    isBidirectional,
                     priority
             );
         }
@@ -190,6 +205,10 @@
         return signalType;
     }
 
+    public boolean isBidirectional() {
+        return isBidirectional;
+    }
+
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(getClass())
@@ -202,6 +221,7 @@
                 .add("path", path)
                 .add("lambda", lambda)
                 .add("signalType", signalType)
+                .add("isBidirectional", isBidirectional)
                 .toString();
     }
 }
