diff --git a/core/api/src/main/java/org/onosproject/security/AppGuard.java b/core/api/src/main/java/org/onosproject/security/AppGuard.java
index 800135f..4b80dfc 100644
--- a/core/api/src/main/java/org/onosproject/security/AppGuard.java
+++ b/core/api/src/main/java/org/onosproject/security/AppGuard.java
@@ -17,9 +17,12 @@
 package org.onosproject.security;
 
 
+import com.google.common.annotations.Beta;
+
 /**
  * Aids SM-ONOS to perform API-level permission checking.
  */
+@Beta
 public final class AppGuard {
 
     private AppGuard() {
diff --git a/core/api/src/main/java/org/onosproject/security/AppPermission.java b/core/api/src/main/java/org/onosproject/security/AppPermission.java
index 21a70d2..09fe17a 100644
--- a/core/api/src/main/java/org/onosproject/security/AppPermission.java
+++ b/core/api/src/main/java/org/onosproject/security/AppPermission.java
@@ -16,11 +16,14 @@
 
 package org.onosproject.security;
 
+import com.google.common.annotations.Beta;
+
 import java.security.BasicPermission;
 
 /**
  * Implementation of API access permission.
  */
+@Beta
 public class AppPermission extends BasicPermission {
 
     public enum Type {
diff --git a/core/api/src/main/java/org/onosproject/security/Permission.java b/core/api/src/main/java/org/onosproject/security/Permission.java
index 75d9433..0c874c9 100644
--- a/core/api/src/main/java/org/onosproject/security/Permission.java
+++ b/core/api/src/main/java/org/onosproject/security/Permission.java
@@ -16,6 +16,9 @@
 
 package org.onosproject.security;
 
+import com.google.common.annotations.Beta;
+
+@Beta
 public class Permission {
 
     protected String classname;
diff --git a/core/api/src/main/java/org/onosproject/security/SecurityAdminService.java b/core/api/src/main/java/org/onosproject/security/SecurityAdminService.java
index 16ea94d..30d143c 100644
--- a/core/api/src/main/java/org/onosproject/security/SecurityAdminService.java
+++ b/core/api/src/main/java/org/onosproject/security/SecurityAdminService.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.security;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 
 import java.security.Permission;
@@ -25,6 +26,7 @@
 /**
  * Security-Mode ONOS service.
  */
+@Beta
 public interface SecurityAdminService {
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/security/SecurityUtil.java b/core/api/src/main/java/org/onosproject/security/SecurityUtil.java
index 34b4e78..444b6bb 100644
--- a/core/api/src/main/java/org/onosproject/security/SecurityUtil.java
+++ b/core/api/src/main/java/org/onosproject/security/SecurityUtil.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.security;
 
+import com.google.common.annotations.Beta;
 import org.onlab.osgi.DefaultServiceDirectory;
 import org.onlab.osgi.ServiceDirectory;
 import org.onlab.osgi.ServiceNotFoundException;
@@ -24,6 +25,7 @@
 /**
  * Utility class to aid Security-Mode ONOS.
  */
+@Beta
 public final class SecurityUtil {
 
     protected static ServiceDirectory serviceDirectory = new DefaultServiceDirectory();
diff --git a/docs/internal-core b/docs/internal-core
index 39b42da..f987aa9 100644
--- a/docs/internal-core
+++ b/docs/internal-core
@@ -25,3 +25,4 @@
 org.onosproject.json.*
 org.onosproject.common.*
 org.onosproject.security.impl
+org.onosproject.security.store
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ConfigException.java b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ConfigException.java
index 071be6a..deeac76 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ConfigException.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ConfigException.java
@@ -16,9 +16,12 @@
 
 package org.onosproject.incubator.net.config.basics;
 
+import com.google.common.annotations.Beta;
+
 /**
  * Signals that an error was encountered while reading/writing configuration.
  */
+@Beta
 public class ConfigException extends Exception {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ExtraSubjectFactories.java b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ExtraSubjectFactories.java
index 474ef6a..260d0af 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ExtraSubjectFactories.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/ExtraSubjectFactories.java
@@ -15,12 +15,14 @@
  */
 package org.onosproject.incubator.net.config.basics;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.incubator.net.domain.IntentDomainId;
 import org.onosproject.net.config.SubjectFactory;
 
 /**
  * Set of subject factories for potential configuration subjects.
  */
+@Beta
 public final class ExtraSubjectFactories {
 
     // Construction forbidden
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/InterfaceConfig.java b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/InterfaceConfig.java
index 47adf5c..af2b47d 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/InterfaceConfig.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/config/basics/InterfaceConfig.java
@@ -17,6 +17,7 @@
 package org.onosproject.incubator.net.config.basics;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.annotations.Beta;
 import com.google.common.collect.Sets;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
@@ -30,6 +31,7 @@
 /**
  * Configuration for interfaces.
  */
+@Beta
 public class InterfaceConfig extends Config<ConnectPoint> {
     public static final String IPS = "ips";
     public static final String MAC = "mac";
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/TunnelPrimitive.java b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/TunnelPrimitive.java
index 975708d..2abaab5 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/TunnelPrimitive.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/TunnelPrimitive.java
@@ -15,12 +15,14 @@
  */
 package org.onosproject.incubator.net.domain;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.ConnectPoint;
 
 /**
  * Provides connectivity through a domain.
  */
+@Beta
 public class TunnelPrimitive extends IntentPrimitive {
 
     private final ConnectPoint one;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/Interface.java b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/Interface.java
index 15ecf34..69d14bc 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/Interface.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/Interface.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.incubator.net.intf;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Sets;
 import org.onlab.packet.MacAddress;
@@ -31,6 +32,7 @@
  * An Interface maps network configuration information (such as addresses and
  * vlans) to a port in the network.
  */
+@Beta
 public class Interface {
     private final ConnectPoint connectPoint;
     private final Set<InterfaceIpAddress> ipAddresses;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceService.java
index ad1bf34..b164df9 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/intf/InterfaceService.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.incubator.net.intf;
 
+import com.google.common.annotations.Beta;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.VlanId;
 import org.onosproject.net.ConnectPoint;
@@ -25,6 +26,7 @@
 /**
  * Service for interacting with interfaces.
  */
+@Beta
 public interface InterfaceService {
 
     /**
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelStatistics.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelStatistics.java
index df1b383..cab9ae4 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelStatistics.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/DefaultTunnelStatistics.java
@@ -16,12 +16,15 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
+
 import java.time.Duration;
 import java.util.List;
 
 /**
  * Default implementation of immutable tunnel statistics.
  */
+@Beta
 public final class DefaultTunnelStatistics implements TunnelStatistics {
     private final TunnelId tunnelId;
     private final double bwUtilization;
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPointFormatter.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPointFormatter.java
index 6e78523..57af670 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPointFormatter.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelEndPointFormatter.java
@@ -16,6 +16,7 @@
 package org.onosproject.incubator.net.tunnel;
 
 
+import com.google.common.annotations.Beta;
 import org.onosproject.ui.table.CellFormatter;
 import org.onosproject.ui.table.cell.AbstractCellFormatter;
 
@@ -23,6 +24,7 @@
  * Formats a optical tunnel endpoint as "(type)/(element-id)/(port)".
  * Formats a ip tunnel endpoint as "ip".
  */
+@Beta
 public final class TunnelEndPointFormatter extends AbstractCellFormatter {
     //non-instantiable
     private TunnelEndPointFormatter() {
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java
index 28ae2e1..c7c9fd9 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelStatistics.java
@@ -16,12 +16,15 @@
 
 package org.onosproject.incubator.net.tunnel;
 
+import com.google.common.annotations.Beta;
+
 import java.time.Duration;
 import java.util.List;
 
 /**
  * Statistics of a tunnel.
  */
+@Beta
 public interface TunnelStatistics {
 
     /**
