diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/DefaultLabelResource.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/DefaultLabelResource.java
index 8eed7c1..23663d3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/DefaultLabelResource.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/DefaultLabelResource.java
@@ -2,6 +2,7 @@
 
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Annotations;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.provider.ProviderId;
@@ -10,6 +11,7 @@
 /**
  * the implementation of a label resource of a device.
  */
+@Beta
 public final class DefaultLabelResource implements LabelResource {
 
     private DeviceId deviceId;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResource.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResource.java
index 36d3111..bb1b316 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResource.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResource.java
@@ -1,5 +1,6 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Annotated;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.NetworkResource;
@@ -8,6 +9,7 @@
 /**
  * Representation of label resource.
  */
+@Beta
 public interface LabelResource extends Annotated, Provided, NetworkResource {
     /**
      * Returns device id.
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceAdminService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceAdminService.java
index 6576ebf..f20ab59 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceAdminService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceAdminService.java
@@ -1,10 +1,12 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 
 /**
  * Service for managing label resource.
  */
+@Beta
 public interface LabelResourceAdminService {
     /**
      * Creates the only label resource of some device id from begin label to end
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceDelegate.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceDelegate.java
index 25287b9..ea053af 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceDelegate.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceDelegate.java
@@ -1,9 +1,12 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.store.StoreDelegate;
+
 /**
  * Label resource store delegate.
  */
+@Beta
 public interface LabelResourceDelegate extends StoreDelegate<LabelResourceEvent> {
 
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceEvent.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceEvent.java
index b532378..e77fdaf 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceEvent.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceEvent.java
@@ -1,10 +1,12 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.AbstractEvent;
 
 /**
  * Describes label resource event.
  */
+@Beta
 public final class LabelResourceEvent
         extends AbstractEvent<LabelResourceEvent.Type, LabelResourcePool> {
 
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceId.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceId.java
index 688dbff..8936954 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceId.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceId.java
@@ -1,5 +1,6 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.resource.ResourceId;
 
 import java.util.Objects;
@@ -7,6 +8,7 @@
 /**
  * Representation of a label.
  */
+@Beta
 public final class LabelResourceId implements ResourceId {
 
     private long labelId;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceListener.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceListener.java
index 599a2b4..72de0fb 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceListener.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceListener.java
@@ -1,9 +1,12 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.event.EventListener;
+
 /**
  * Entity capable of receiving label resource related events.
  */
+@Beta
 public interface LabelResourceListener extends EventListener<LabelResourceEvent> {
 
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourcePool.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourcePool.java
index e590dd9..ecdd1be 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourcePool.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourcePool.java
@@ -6,6 +6,7 @@
 import java.util.Objects;
 import java.util.Set;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 
 import com.google.common.base.MoreObjects;
@@ -19,6 +20,7 @@
  * labels by calculating with three attributes, beginLabel,endLabel and
  * currentUsedMaxLabelId
  */
+@Beta
 public class LabelResourcePool {
 
     private final DeviceId deviceId;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProvider.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProvider.java
index d0b46d0..2ef966b 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProvider.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProvider.java
@@ -1,10 +1,13 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.provider.Provider;
+
 /**
  * Abstraction of an entity providing information about label resource
  * to the core.
  */
+@Beta
 public interface LabelResourceProvider extends Provider {
 
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderRegistry.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderRegistry.java
index 4d50297..b8e0a29 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderRegistry.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderRegistry.java
@@ -1,9 +1,12 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.provider.ProviderRegistry;
+
 /**
  * Abstraction of an label resource provider registry.
  */
+@Beta
 public interface LabelResourceProviderRegistry
         extends ProviderRegistry<LabelResourceProvider, LabelResourceProviderService> {
 
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderService.java
index e804cc9..93384c0 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceProviderService.java
@@ -1,11 +1,13 @@
 package org.onosproject.incubator.net.resource.label;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.provider.ProviderService;
 
 /**
  * Means for injecting label information into the core.
  */
+@Beta
 public interface LabelResourceProviderService extends ProviderService<LabelResourceProvider> {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceRequest.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceRequest.java
index 7e429e2..d81d7aa 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceRequest.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceRequest.java
@@ -3,13 +3,16 @@
 import java.util.Collection;
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
+
 /**
  * Represents for a label request.
  */
+@Beta
 public class LabelResourceRequest {
 
     private final DeviceId deviceId;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
index 9b35de1..612fbc7 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
@@ -3,6 +3,7 @@
 import java.util.Collection;
 import java.util.Set;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 
 import com.google.common.collect.Multimap;
@@ -10,6 +11,7 @@
 /**
  * Service for providing label resource allocation.
  */
+@Beta
 public interface LabelResourceService {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceStore.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceStore.java
index 8fdc77d..2da3e81 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceStore.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceStore.java
@@ -3,6 +3,7 @@
 import java.util.Collection;
 import java.util.Set;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.DeviceId;
 import org.onosproject.store.Store;
 
@@ -12,6 +13,7 @@
  * Manages inventory of label; not intended for direct use.
  *
  */
+@Beta
 public interface LabelResourceStore
         extends Store<LabelResourceEvent, LabelResourceDelegate> {
 
