Adding @Beta to Intent API classes and interfaces

Change-Id: I02a3c1a678cb4e75b5bba9a33117a9dccb6fc0f5
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;