diff --git a/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java b/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
index d69e85b..7caee3e 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/ConnectivityIntent.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import org.onosproject.core.ApplicationId;
@@ -34,6 +35,7 @@
 /**
  * Abstraction of connectivity intent for traffic matching some criteria.
  */
+@Beta
 public abstract class ConnectivityIntent extends Intent {
 
     // TODO: other forms of intents should be considered for this family:
diff --git a/core/api/src/main/java/org/onosproject/net/intent/Constraint.java b/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
index ee28f6e..03acf17 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/Constraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
 import org.onosproject.net.resource.link.LinkResourceService;
@@ -24,6 +25,7 @@
  * and determining the cost of traversing that link in the context of this
  * constraint.
  */
+@Beta
 public interface Constraint {
 
     // TODO: Consider separating cost vs viability.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/FlowRuleIntent.java b/core/api/src/main/java/org/onosproject/net/intent/FlowRuleIntent.java
index b2c6cb8..9f879cf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/FlowRuleIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/FlowRuleIntent.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import org.onosproject.core.ApplicationId;
@@ -31,6 +32,7 @@
  * An intent that enables to tell flow level operation.
  * This instance holds a collection of flow rules that may be executed in parallel.
  */
+@Beta
 public class FlowRuleIntent extends Intent {
 
     private final Collection<FlowRule> flowRules;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java b/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
index b72ada5..bd4219a 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/HostToHostIntent.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 import org.onosproject.core.ApplicationId;
@@ -29,6 +30,7 @@
 /**
  * Abstraction of end-station to end-station bidirectional connectivity.
  */
+@Beta
 public final class HostToHostIntent extends ConnectivityIntent {
 
     private final HostId one;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/Intent.java b/core/api/src/main/java/org/onosproject/net/intent/Intent.java
index 4fac53b..077fd89 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/Intent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/Intent.java
@@ -18,6 +18,7 @@
 import java.util.Collection;
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.IdGenerator;
 import org.onosproject.net.NetworkResource;
@@ -32,6 +33,7 @@
  * Make sure that an Intent should be immutable when a new type is defined.
  * </p>
  */
+@Beta
 public abstract class Intent {
 
     private final IntentId id;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
index 3833160..e4babfb 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentBatchDelegate.java
@@ -15,11 +15,14 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
+
 import java.util.Collection;
 
 /**
  * Facade for receiving notifications from the intent batch service.
  */
+@Beta
 public interface IntentBatchDelegate {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentClockService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentClockService.java
index 5da7215..d0dbacf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentClockService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentClockService.java
@@ -15,11 +15,13 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.store.Timestamp;
 
 /**
  * Logical clock service that issues per-intent timestamps.
  */
+@Beta
 public interface IntentClockService {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java b/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
index da39184..9a059be 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentCompiler.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.resource.link.LinkResourceAllocations;
 
 import java.util.List;
@@ -26,6 +27,7 @@
  *
  * @param <T> the type of intent
  */
+@Beta
 public interface IntentCompiler<T extends Intent> {
     /**
      * Compiles the specified intent into other intents.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentData.java b/core/api/src/main/java/org/onosproject/net/intent/IntentData.java
index c54c5bc..6ac200f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentData.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentData.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import org.onosproject.cluster.NodeId;
@@ -33,6 +34,7 @@
  * A wrapper class that contains an intents, its state, and other metadata for
  * internal use.
  */
+@Beta
 public class IntentData { //FIXME need to make this "immutable"
                           // manager should be able to mutate a local copy while processing
 
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java b/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
index 369636a..b27a507 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentEvent.java
@@ -15,11 +15,13 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.AbstractEvent;
 
 /**
  * A class to represent an intent related event.
  */
+@Beta
 public class IntentEvent extends AbstractEvent<IntentEvent.Type, Intent> {
 
     public enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentException.java b/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
index d2675c7..3ac1df5 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentException.java
@@ -15,9 +15,12 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Represents an intent related error.
  */
+@Beta
 public class IntentException extends RuntimeException {
 
     private static final long serialVersionUID = 1907263634145241319L;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
index 786b60e..d7c7c64 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentExtensionService.java
@@ -15,12 +15,15 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
+
 import java.util.Map;
 
 /**
  * Service for extending the capability of intent framework by
  * adding additional compilers or/and installers.
  */
+@Beta
 public interface IntentExtensionService {
     /**
      * Registers the specified compiler for the given intent class.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentId.java b/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
index b3077c5..a88fa2f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentId.java
@@ -15,10 +15,13 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Intent identifier suitable as an external key.
  * <p>This class is immutable.</p>
  */
+@Beta
 public final class IntentId {
 
     private final long value;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java b/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
index c4a8367..4858c7e 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentListener.java
@@ -15,10 +15,12 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.EventListener;
 
 /**
  * Listener for {@link IntentEvent intent events}.
  */
+@Beta
 public interface IntentListener extends EventListener<IntentEvent> {
 }
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java b/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
index e2c8f91..1b51b4f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentOperation.java
@@ -16,6 +16,8 @@
 package org.onosproject.net.intent;
 
 
+import com.google.common.annotations.Beta;
+
 import java.util.Objects;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
@@ -24,6 +26,7 @@
 /**
  * Abstraction of an intent-related operation, e.g. add, remove, replace.
  */
+@Beta
 public final class IntentOperation {
 
     private final Type type;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
index d6e1185..ccc97d8 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentService.java
@@ -16,11 +16,14 @@
 package org.onosproject.net.intent;
 
 
+import com.google.common.annotations.Beta;
+
 import java.util.List;
 
 /**
  * Service for application submitting or withdrawing their intents.
  */
+@Beta
 public interface IntentService {
     /**
      * Submits an intent into the system.
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentState.java b/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
index e36bf4c..1e5fd05 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentState.java
@@ -15,9 +15,12 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Representation of the phases an intent may attain during its lifecycle.
  */
+@Beta
 public enum IntentState {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
index 0c3e649..167ba15 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentStore.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.store.Store;
 
 import java.util.List;
@@ -22,6 +23,7 @@
 /**
  * Manages inventory of end-station intents; not intended for direct use.
  */
+@Beta
 public interface IntentStore extends Store<IntentEvent, IntentStoreDelegate> {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java b/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
index dcb7469..fd99881 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/IntentStoreDelegate.java
@@ -15,11 +15,13 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.store.StoreDelegate;
 
 /**
  * Intent store delegate abstraction.
  */
+@Beta
 public interface IntentStoreDelegate extends StoreDelegate<IntentEvent> {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/Key.java b/core/api/src/main/java/org/onosproject/net/intent/Key.java
index 8420188..18baafc 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/Key.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/Key.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.hash.HashFunction;
 import com.google.common.hash.Hashing;
 import org.onosproject.core.ApplicationId;
@@ -26,6 +27,7 @@
  * Key class for Intents.
  */
 // TODO maybe pull this up to utils
+@Beta
 public abstract class Key {
 
     //TODO consider making this a HashCode object (worry about performance)
diff --git a/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java b/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
index d26099e..d7953fd 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/LinkCollectionIntent.java
@@ -18,6 +18,7 @@
 import java.util.List;
 import java.util.Set;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.Link;
@@ -31,6 +32,7 @@
  * Abstraction of a connectivity intent that is implemented by a set of path
  * segments.
  */
+@Beta
 public final class LinkCollectionIntent extends ConnectivityIntent {
 
     private final Set<Link> links;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
index 1625f58..bf469db 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Optional;
 
+import com.google.common.annotations.Beta;
 import org.onlab.packet.MplsLabel;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
@@ -19,6 +20,7 @@
 /**
  * Abstraction of MPLS label-switched connectivity.
  */
+@Beta
 public final class MplsIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
index 1ea5829..3c3c45c 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import java.util.Optional;
 
+import com.google.common.annotations.Beta;
 import org.onlab.packet.MplsLabel;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.Path;
@@ -15,7 +16,7 @@
 /**
  * Abstraction of explicit MPLS label-switched path.
  */
-
+@Beta
 public final class MplsPathIntent extends PathIntent {
 
     private final Optional<MplsLabel> ingressLabel;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
index b6cf0db..ac6061c 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MultiPointToSinglePointIntent.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
@@ -33,6 +34,7 @@
 /**
  * Abstraction of multiple source to single destination connectivity intent.
  */
+@Beta
 public final class MultiPointToSinglePointIntent extends ConnectivityIntent {
 
     private final Set<ConnectPoint> ingressPoints;
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 503c4ca..1e515c8 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
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
@@ -28,6 +29,7 @@
  * An optical layer intent for circuits between two OduClt ports.
  * No traffic selector or traffic treatment are needed.
  */
+@Beta
 public class OpticalCircuitIntent extends Intent {
     private final ConnectPoint src;
     private final ConnectPoint dst;
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 9197ce6..aeb0255 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
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
@@ -28,6 +29,7 @@
  * An optical layer intent for connectivity between two OCh ports.
  * No traffic selector or traffic treatment are needed.
  */
+@Beta
 public final class OpticalConnectivityIntent extends Intent {
     private final ConnectPoint src;
     private final ConnectPoint dst;
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 1fee24e..5a5461c 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
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.OchSignal;
@@ -26,6 +27,10 @@
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
+/**
+ * An optical layer intent with explicitly selected path.
+ */
+@Beta
 public final class OpticalPathIntent extends Intent {
 
     private final ConnectPoint src;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PartitionEvent.java b/core/api/src/main/java/org/onosproject/net/intent/PartitionEvent.java
index 48623dd..c79a381 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PartitionEvent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PartitionEvent.java
@@ -15,12 +15,14 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.AbstractEvent;
 
 /**
  * Partition event.
  */
 //TODO change String into a proper object type
+@Beta
 public class PartitionEvent extends AbstractEvent<PartitionEvent.Type, String> {
 
     public enum Type {
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PartitionEventListener.java b/core/api/src/main/java/org/onosproject/net/intent/PartitionEventListener.java
index 73b9de9..5f1da33 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PartitionEventListener.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PartitionEventListener.java
@@ -15,10 +15,12 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.EventListener;
 
 /**
  * Entity capable of receiving device partition-related events.
  */
+@Beta
 public interface PartitionEventListener extends EventListener<PartitionEvent> {
 }
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PartitionService.java b/core/api/src/main/java/org/onosproject/net/intent/PartitionService.java
index c636cd2..7c9d547 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PartitionService.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PartitionService.java
@@ -15,11 +15,13 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.cluster.NodeId;
 
 /**
  * Service for interacting with the partition-to-instance assignments.
  */
+@Beta
 public interface PartitionService {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
index 2bdb4cf..dffbabf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PathIntent.java
@@ -17,6 +17,7 @@
 
 import java.util.List;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
@@ -32,6 +33,7 @@
 /**
  * Abstraction of explicitly path specified connectivity intent.
  */
+@Beta
 public class PathIntent extends ConnectivityIntent {
 
     private final Path path;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
index e737a5f..d3f7529 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
@@ -18,6 +18,7 @@
 import java.util.Collections;
 import java.util.List;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.flow.TrafficSelector;
@@ -31,6 +32,7 @@
 /**
  * Abstraction of point-to-point connectivity.
  */
+@Beta
 public final class PointToPointIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
index 56cac75..de555cf 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 
@@ -33,6 +34,7 @@
 /**
  * Abstraction of single source, multiple destination connectivity intent.
  */
+@Beta
 public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java b/core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java
index a995758..b9f126f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/TwoWayP2PIntent.java
@@ -18,6 +18,7 @@
 import java.util.Collections;
 import java.util.List;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.flow.TrafficSelector;
@@ -30,6 +31,7 @@
 /**
  * Abstraction of bidirectional connectivity between two points in the network.
  */
+@Beta
 public final class TwoWayP2PIntent extends ConnectivityIntent {
 
     private final ConnectPoint one;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
index 36e6157..f5439ef 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/AnnotationConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import org.onosproject.net.Link;
 import org.onosproject.net.resource.link.LinkResourceService;
@@ -26,6 +27,7 @@
 /**
  * Constraint that evaluates an arbitrary link annotated value is under the specified threshold.
  */
+@Beta
 public class AnnotationConstraint extends BooleanConstraint {
 
     private final String key;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
index df709f9..e0f8614 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/AsymmetricPathConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
 import org.onosproject.net.intent.Constraint;
@@ -27,6 +28,7 @@
 /**
  * Constraint that serves as a request for asymmetric bi-directional path.
  */
+@Beta
 public class AsymmetricPathConstraint implements Constraint {
 
     @Override
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
index b4518d4..43b8e4b 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/BandwidthConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.resource.link.BandwidthResource;
 import org.onosproject.net.resource.link.BandwidthResourceRequest;
@@ -30,6 +31,7 @@
 /**
  * Constraint that evaluates links based on available bandwidths.
  */
+@Beta
 public class BandwidthConstraint extends BooleanConstraint {
 
     private final BandwidthResource bandwidth;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
index 02d4a42..f1d4ad9 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/BooleanConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
 import org.onosproject.net.intent.Constraint;
@@ -24,6 +25,7 @@
  * Abstract base class for various constraints that evaluate link viability
  * in a yes/no fashion.
  */
+@Beta
 public abstract class BooleanConstraint implements Constraint {
 
     /**
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 a73e375..9dd813b 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
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.resource.link.LambdaResource;
 import org.onosproject.net.resource.link.LinkResourceService;
@@ -28,6 +29,7 @@
 /**
  * Constraint that evaluates links based on available lambda.
  */
+@Beta
 public class LambdaConstraint extends BooleanConstraint {
 
     private final LambdaResource lambda;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
index 6b47e83..54eb4ea 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
@@ -31,6 +32,7 @@
 /**
  * Constraint that evaluates the latency through a path.
  */
+@Beta
 public class LatencyConstraint implements Constraint {
 
     private final Duration latency;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
index 590715b..ffa4405 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LinkTypeConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableSet;
 import org.onosproject.net.Link;
 import org.onosproject.net.resource.link.LinkResourceService;
@@ -29,6 +30,7 @@
 /**
  * Constraint that evaluates links based on their type.
  */
+@Beta
 public class LinkTypeConstraint extends BooleanConstraint {
 
     private final Set<Link.Type> types;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
index 24ef191..cb1e6b2 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/ObstacleConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 import org.onosproject.net.DeviceId;
@@ -28,6 +29,7 @@
 /**
  * Constraint that evaluates elements not passed through.
  */
+@Beta
 public class ObstacleConstraint extends BooleanConstraint {
 
     private final Set<DeviceId> obstacles;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
index 579e44d..1acf6df 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/WaypointConstraint.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.intent.constraint;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableList;
 import org.onosproject.net.DeviceId;
@@ -34,6 +35,7 @@
 /**
  * Constraint that evaluates elements passed through in order.
  */
+@Beta
 public class WaypointConstraint implements Constraint {
 
     private final List<DeviceId> waypoints;
