Merge branch '1.7' into 1.8
diff --git a/src/main/cpp/proxy_types.cpp b/src/main/cpp/proxy_types.cpp
index 09c2d9c..87ef7ac 100644
--- a/src/main/cpp/proxy_types.cpp
+++ b/src/main/cpp/proxy_types.cpp
@@ -73,7 +73,11 @@
   SystemPermission::CREATE_USER,
   SystemPermission::DROP_USER,
   SystemPermission::ALTER_USER,
-  SystemPermission::SYSTEM
+  SystemPermission::SYSTEM,
+  SystemPermission::CREATE_NAMESPACE,
+  SystemPermission::DROP_NAMESPACE,
+  SystemPermission::ALTER_NAMESPACE,
+  SystemPermission::OBTAIN_DELEGATION_TOKEN
 };
 const char* _kSystemPermissionNames[] = {
   "GRANT",
@@ -83,9 +87,13 @@
   "CREATE_USER",
   "DROP_USER",
   "ALTER_USER",
-  "SYSTEM"
+  "SYSTEM",
+  "CREATE_NAMESPACE",
+  "DROP_NAMESPACE",
+  "ALTER_NAMESPACE",
+  "OBTAIN_DELEGATION_TOKEN"
 };
-const std::map<int, const char*> _SystemPermission_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(8, _kSystemPermissionValues, _kSystemPermissionNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+const std::map<int, const char*> _SystemPermission_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(12, _kSystemPermissionValues, _kSystemPermissionNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
 int _kNamespacePermissionValues[] = {
   NamespacePermission::READ,
diff --git a/src/main/cpp/proxy_types.h b/src/main/cpp/proxy_types.h
index e5daf2e..6c02404 100644
--- a/src/main/cpp/proxy_types.h
+++ b/src/main/cpp/proxy_types.h
@@ -70,7 +70,11 @@
     CREATE_USER = 4,
     DROP_USER = 5,
     ALTER_USER = 6,
-    SYSTEM = 7
+    SYSTEM = 7,
+    CREATE_NAMESPACE = 8,
+    DROP_NAMESPACE = 9,
+    ALTER_NAMESPACE = 10,
+    OBTAIN_DELEGATION_TOKEN = 11
   };
 };
 
diff --git a/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java b/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
index 6f4b549..6671dec 100644
--- a/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
+++ b/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
@@ -35,7 +35,11 @@
   CREATE_USER(4),
   DROP_USER(5),
   ALTER_USER(6),
-  SYSTEM(7);
+  SYSTEM(7),
+  CREATE_NAMESPACE(8),
+  DROP_NAMESPACE(9),
+  ALTER_NAMESPACE(10),
+  OBTAIN_DELEGATION_TOKEN(11);
 
   private final int value;
 
@@ -72,6 +76,14 @@
         return ALTER_USER;
       case 7:
         return SYSTEM;
+      case 8:
+        return CREATE_NAMESPACE;
+      case 9:
+        return DROP_NAMESPACE;
+      case 10:
+        return ALTER_NAMESPACE;
+      case 11:
+        return OBTAIN_DELEGATION_TOKEN;
       default:
         return null;
     }
diff --git a/src/main/python/ttypes.py b/src/main/python/ttypes.py
index 87a977d..3f9ec9c 100644
--- a/src/main/python/ttypes.py
+++ b/src/main/python/ttypes.py
@@ -91,6 +91,10 @@
   DROP_USER = 5
   ALTER_USER = 6
   SYSTEM = 7
+  CREATE_NAMESPACE = 8
+  DROP_NAMESPACE = 9
+  ALTER_NAMESPACE = 10
+  OBTAIN_DELEGATION_TOKEN = 11
 
   _VALUES_TO_NAMES = {
     0: "GRANT",
@@ -101,6 +105,10 @@
     5: "DROP_USER",
     6: "ALTER_USER",
     7: "SYSTEM",
+    8: "CREATE_NAMESPACE",
+    9: "DROP_NAMESPACE",
+    10: "ALTER_NAMESPACE",
+    11: "OBTAIN_DELEGATION_TOKEN",
   }
 
   _NAMES_TO_VALUES = {
@@ -112,6 +120,10 @@
     "DROP_USER": 5,
     "ALTER_USER": 6,
     "SYSTEM": 7,
+    "CREATE_NAMESPACE": 8,
+    "DROP_NAMESPACE": 9,
+    "ALTER_NAMESPACE": 10,
+    "OBTAIN_DELEGATION_TOKEN": 11,
   }
 
 class NamespacePermission:
diff --git a/src/main/ruby/proxy_types.rb b/src/main/ruby/proxy_types.rb
index e542df6..ddf8a18 100644
--- a/src/main/ruby/proxy_types.rb
+++ b/src/main/ruby/proxy_types.rb
@@ -52,8 +52,12 @@
     DROP_USER = 5
     ALTER_USER = 6
     SYSTEM = 7
-    VALUE_MAP = {0 => "GRANT", 1 => "CREATE_TABLE", 2 => "DROP_TABLE", 3 => "ALTER_TABLE", 4 => "CREATE_USER", 5 => "DROP_USER", 6 => "ALTER_USER", 7 => "SYSTEM"}
-    VALID_VALUES = Set.new([GRANT, CREATE_TABLE, DROP_TABLE, ALTER_TABLE, CREATE_USER, DROP_USER, ALTER_USER, SYSTEM]).freeze
+    CREATE_NAMESPACE = 8
+    DROP_NAMESPACE = 9
+    ALTER_NAMESPACE = 10
+    OBTAIN_DELEGATION_TOKEN = 11
+    VALUE_MAP = {0 => "GRANT", 1 => "CREATE_TABLE", 2 => "DROP_TABLE", 3 => "ALTER_TABLE", 4 => "CREATE_USER", 5 => "DROP_USER", 6 => "ALTER_USER", 7 => "SYSTEM", 8 => "CREATE_NAMESPACE", 9 => "DROP_NAMESPACE", 10 => "ALTER_NAMESPACE", 11 => "OBTAIN_DELEGATION_TOKEN"}
+    VALID_VALUES = Set.new([GRANT, CREATE_TABLE, DROP_TABLE, ALTER_TABLE, CREATE_USER, DROP_USER, ALTER_USER, SYSTEM, CREATE_NAMESPACE, DROP_NAMESPACE, ALTER_NAMESPACE, OBTAIN_DELEGATION_TOKEN]).freeze
   end
 
   module NamespacePermission
diff --git a/src/main/thrift/proxy.thrift b/src/main/thrift/proxy.thrift
index 3814c44..e15990c 100644
--- a/src/main/thrift/proxy.thrift
+++ b/src/main/thrift/proxy.thrift
@@ -131,6 +131,10 @@
   DROP_USER = 5,
   ALTER_USER = 6,
   SYSTEM = 7,
+  CREATE_NAMESPACE = 8,
+  DROP_NAMESPACE = 9,
+  ALTER_NAMESPACE = 10,
+  OBTAIN_DELEGATION_TOKEN = 11,
 }
 
 enum NamespacePermission {