You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zg...@apache.org on 2017/05/18 09:51:11 UTC

[7/8] hbase git commit: HBASE-11013: Clone Snapshots on Secure Cluster Should provide option to apply Retained User Permissions

http://git-wip-us.apache.org/repos/asf/hbase/blob/37dd8ff7/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
new file mode 100644
index 0000000..06a4e01
--- /dev/null
+++ b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
@@ -0,0 +1,11171 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: AccessControl.proto
+
+package org.apache.hadoop.hbase.shaded.protobuf.generated;
+
+public final class AccessControlProtos {
+  private AccessControlProtos() {}
+  public static void registerAllExtensions(
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  public interface PermissionOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.Permission)
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    boolean hasType();
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type getType();
+
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    boolean hasGlobalPermission();
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission getGlobalPermission();
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder getGlobalPermissionOrBuilder();
+
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    boolean hasNamespacePermission();
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission getNamespacePermission();
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder getNamespacePermissionOrBuilder();
+
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    boolean hasTablePermission();
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission getTablePermission();
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder getTablePermissionOrBuilder();
+  }
+  /**
+   * Protobuf type {@code hbase.pb.Permission}
+   */
+  public  static final class Permission extends
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:hbase.pb.Permission)
+      PermissionOrBuilder {
+    // Use Permission.newBuilder() to construct.
+    private Permission(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private Permission() {
+      type_ = 1;
+    }
+
+    @java.lang.Override
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Permission(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      int mutable_bitField0_ = 0;
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              int rawValue = input.readEnum();
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type value = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(1, rawValue);
+              } else {
+                bitField0_ |= 0x00000001;
+                type_ = rawValue;
+              }
+              break;
+            }
+            case 18: {
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                subBuilder = globalPermission_.toBuilder();
+              }
+              globalPermission_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(globalPermission_);
+                globalPermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              break;
+            }
+            case 26: {
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000004) == 0x00000004)) {
+                subBuilder = namespacePermission_.toBuilder();
+              }
+              namespacePermission_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(namespacePermission_);
+                namespacePermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 34: {
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000008) == 0x00000008)) {
+                subBuilder = tablePermission_.toBuilder();
+              }
+              tablePermission_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tablePermission_);
+                tablePermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+          }
+        }
+      } catch (org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+    }
+
+    protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.class, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Builder.class);
+    }
+
+    /**
+     * Protobuf enum {@code hbase.pb.Permission.Action}
+     */
+    public enum Action
+        implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>READ = 0;</code>
+       */
+      READ(0),
+      /**
+       * <code>WRITE = 1;</code>
+       */
+      WRITE(1),
+      /**
+       * <code>EXEC = 2;</code>
+       */
+      EXEC(2),
+      /**
+       * <code>CREATE = 3;</code>
+       */
+      CREATE(3),
+      /**
+       * <code>ADMIN = 4;</code>
+       */
+      ADMIN(4),
+      ;
+
+      /**
+       * <code>READ = 0;</code>
+       */
+      public static final int READ_VALUE = 0;
+      /**
+       * <code>WRITE = 1;</code>
+       */
+      public static final int WRITE_VALUE = 1;
+      /**
+       * <code>EXEC = 2;</code>
+       */
+      public static final int EXEC_VALUE = 2;
+      /**
+       * <code>CREATE = 3;</code>
+       */
+      public static final int CREATE_VALUE = 3;
+      /**
+       * <code>ADMIN = 4;</code>
+       */
+      public static final int ADMIN_VALUE = 4;
+
+
+      public final int getNumber() {
+        return value;
+      }
+
+      /**
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static Action valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static Action forNumber(int value) {
+        switch (value) {
+          case 0: return READ;
+          case 1: return WRITE;
+          case 2: return EXEC;
+          case 3: return CREATE;
+          case 4: return ADMIN;
+          default: return null;
+        }
+      }
+
+      public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Action>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+          Action> internalValueMap =
+            new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Action>() {
+              public Action findValueByNumber(int number) {
+                return Action.forNumber(number);
+              }
+            };
+
+      public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final Action[] VALUES = values();
+
+      public static Action valueOf(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private Action(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:hbase.pb.Permission.Action)
+    }
+
+    /**
+     * Protobuf enum {@code hbase.pb.Permission.Type}
+     */
+    public enum Type
+        implements org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>Global = 1;</code>
+       */
+      Global(1),
+      /**
+       * <code>Namespace = 2;</code>
+       */
+      Namespace(2),
+      /**
+       * <code>Table = 3;</code>
+       */
+      Table(3),
+      ;
+
+      /**
+       * <code>Global = 1;</code>
+       */
+      public static final int Global_VALUE = 1;
+      /**
+       * <code>Namespace = 2;</code>
+       */
+      public static final int Namespace_VALUE = 2;
+      /**
+       * <code>Table = 3;</code>
+       */
+      public static final int Table_VALUE = 3;
+
+
+      public final int getNumber() {
+        return value;
+      }
+
+      /**
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static Type valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static Type forNumber(int value) {
+        switch (value) {
+          case 1: return Global;
+          case 2: return Namespace;
+          case 3: return Table;
+          default: return null;
+        }
+      }
+
+      public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Type>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+          Type> internalValueMap =
+            new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Type>() {
+              public Type findValueByNumber(int number) {
+                return Type.forNumber(number);
+              }
+            };
+
+      public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDescriptor().getEnumTypes().get(1);
+      }
+
+      private static final Type[] VALUES = values();
+
+      public static Type valueOf(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private Type(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:hbase.pb.Permission.Type)
+    }
+
+    private int bitField0_;
+    public static final int TYPE_FIELD_NUMBER = 1;
+    private int type_;
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    public boolean hasType() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type getType() {
+      org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type result = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(type_);
+      return result == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.Global : result;
+    }
+
+    public static final int GLOBAL_PERMISSION_FIELD_NUMBER = 2;
+    private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission globalPermission_;
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public boolean hasGlobalPermission() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission getGlobalPermission() {
+      return globalPermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance() : globalPermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder getGlobalPermissionOrBuilder() {
+      return globalPermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance() : globalPermission_;
+    }
+
+    public static final int NAMESPACE_PERMISSION_FIELD_NUMBER = 3;
+    private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission namespacePermission_;
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    public boolean hasNamespacePermission() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission getNamespacePermission() {
+      return namespacePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance() : namespacePermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder getNamespacePermissionOrBuilder() {
+      return namespacePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance() : namespacePermission_;
+    }
+
+    public static final int TABLE_PERMISSION_FIELD_NUMBER = 4;
+    private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission tablePermission_;
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public boolean hasTablePermission() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission getTablePermission() {
+      return tablePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance() : tablePermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder getTablePermissionOrBuilder() {
+      return tablePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance() : tablePermission_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (!hasType()) {
+        memoizedIsInitialized = 0;
+        return false;
+      }
+      if (hasTablePermission()) {
+        if (!getTablePermission().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeEnum(1, type_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeMessage(2, getGlobalPermission());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeMessage(3, getNamespacePermission());
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeMessage(4, getTablePermission());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, type_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getGlobalPermission());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getNamespacePermission());
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getTablePermission());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)) {
+        return super.equals(obj);
+      }
+      org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission other = (org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission) obj;
+
+      boolean result = true;
+      result = result && (hasType() == other.hasType());
+      if (hasType()) {
+        result = result && type_ == other.type_;
+      }
+      result = result && (hasGlobalPermission() == other.hasGlobalPermission());
+      if (hasGlobalPermission()) {
+        result = result && getGlobalPermission()
+            .equals(other.getGlobalPermission());
+      }
+      result = result && (hasNamespacePermission() == other.hasNamespacePermission());
+      if (hasNamespacePermission()) {
+        result = result && getNamespacePermission()
+            .equals(other.getNamespacePermission());
+      }
+      result = result && (hasTablePermission() == other.hasTablePermission());
+      if (hasTablePermission()) {
+        result = result && getTablePermission()
+            .equals(other.getTablePermission());
+      }
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasType()) {
+        hash = (37 * hash) + TYPE_FIELD_NUMBER;
+        hash = (53 * hash) + type_;
+      }
+      if (hasGlobalPermission()) {
+        hash = (37 * hash) + GLOBAL_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getGlobalPermission().hashCode();
+      }
+      if (hasNamespacePermission()) {
+        hash = (37 * hash) + NAMESPACE_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getNamespacePermission().hashCode();
+      }
+      if (hasTablePermission()) {
+        hash = (37 * hash) + TABLE_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getTablePermission().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(byte[] data)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        byte[] data,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        java.io.InputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseDelimitedFrom(
+        java.io.InputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code hbase.pb.Permission}
+     */
+    public static final class Builder extends
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:hbase.pb.Permission)
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.PermissionOrBuilder {
+      public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+      }
+
+      protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.class, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Builder.class);
+      }
+
+      // Construct using org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getGlobalPermissionFieldBuilder();
+          getNamespacePermissionFieldBuilder();
+          getTablePermissionFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        type_ = 1;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = null;
+        } else {
+          globalPermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = null;
+        } else {
+          namespacePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = null;
+        } else {
+          tablePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+
+      public org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission getDefaultInstanceForType() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDefaultInstance();
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission build() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission buildPartial() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission result = new org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.type_ = type_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        if (globalPermissionBuilder_ == null) {
+          result.globalPermission_ = globalPermission_;
+        } else {
+          result.globalPermission_ = globalPermissionBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        if (namespacePermissionBuilder_ == null) {
+          result.namespacePermission_ = namespacePermission_;
+        } else {
+          result.namespacePermission_ = namespacePermissionBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000008;
+        }
+        if (tablePermissionBuilder_ == null) {
+          result.tablePermission_ = tablePermission_;
+        } else {
+          result.tablePermission_ = tablePermissionBuilder_.build();
+        }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.com.google.protobuf.Message other) {
+        if (other instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission) {
+          return mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission other) {
+        if (other == org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDefaultInstance()) return this;
+        if (other.hasType()) {
+          setType(other.getType());
+        }
+        if (other.hasGlobalPermission()) {
+          mergeGlobalPermission(other.getGlobalPermission());
+        }
+        if (other.hasNamespacePermission()) {
+          mergeNamespacePermission(other.getNamespacePermission());
+        }
+        if (other.hasTablePermission()) {
+          mergeTablePermission(other.getTablePermission());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (!hasType()) {
+          return false;
+        }
+        if (hasTablePermission()) {
+          if (!getTablePermission().isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission) e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int type_ = 1;
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public boolean hasType() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type getType() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type result = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(type_);
+        return result == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.Global : result;
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public Builder setType(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        bitField0_ |= 0x00000001;
+        type_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public Builder clearType() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        type_ = 1;
+        onChanged();
+        return this;
+      }
+
+      private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission globalPermission_ = null;
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder> globalPermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public boolean hasGlobalPermission() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission getGlobalPermission() {
+        if (globalPermissionBuilder_ == null) {
+          return globalPermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance() : globalPermission_;
+        } else {
+          return globalPermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public Builder setGlobalPermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission value) {
+        if (globalPermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          globalPermission_ = value;
+          onChanged();
+        } else {
+          globalPermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public Builder setGlobalPermission(
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder builderForValue) {
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          globalPermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public Builder mergeGlobalPermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission value) {
+        if (globalPermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) == 0x00000002) &&
+              globalPermission_ != null &&
+              globalPermission_ != org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance()) {
+            globalPermission_ =
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.newBuilder(globalPermission_).mergeFrom(value).buildPartial();
+          } else {
+            globalPermission_ = value;
+          }
+          onChanged();
+        } else {
+          globalPermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public Builder clearGlobalPermission() {
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = null;
+          onChanged();
+        } else {
+          globalPermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder getGlobalPermissionBuilder() {
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return getGlobalPermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder getGlobalPermissionOrBuilder() {
+        if (globalPermissionBuilder_ != null) {
+          return globalPermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return globalPermission_ == null ?
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance() : globalPermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+       */
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder>
+          getGlobalPermissionFieldBuilder() {
+        if (globalPermissionBuilder_ == null) {
+          globalPermissionBuilder_ = new org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder>(
+                  getGlobalPermission(),
+                  getParentForChildren(),
+                  isClean());
+          globalPermission_ = null;
+        }
+        return globalPermissionBuilder_;
+      }
+
+      private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission namespacePermission_ = null;
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder> namespacePermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public boolean hasNamespacePermission() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission getNamespacePermission() {
+        if (namespacePermissionBuilder_ == null) {
+          return namespacePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance() : namespacePermission_;
+        } else {
+          return namespacePermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public Builder setNamespacePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission value) {
+        if (namespacePermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          namespacePermission_ = value;
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public Builder setNamespacePermission(
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder builderForValue) {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public Builder mergeNamespacePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission value) {
+        if (namespacePermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) == 0x00000004) &&
+              namespacePermission_ != null &&
+              namespacePermission_ != org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance()) {
+            namespacePermission_ =
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.newBuilder(namespacePermission_).mergeFrom(value).buildPartial();
+          } else {
+            namespacePermission_ = value;
+          }
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public Builder clearNamespacePermission() {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = null;
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder getNamespacePermissionBuilder() {
+        bitField0_ |= 0x00000004;
+        onChanged();
+        return getNamespacePermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder getNamespacePermissionOrBuilder() {
+        if (namespacePermissionBuilder_ != null) {
+          return namespacePermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return namespacePermission_ == null ?
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance() : namespacePermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 3;</code>
+       */
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder>
+          getNamespacePermissionFieldBuilder() {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermissionBuilder_ = new org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder>(
+                  getNamespacePermission(),
+                  getParentForChildren(),
+                  isClean());
+          namespacePermission_ = null;
+        }
+        return namespacePermissionBuilder_;
+      }
+
+      private org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission tablePermission_ = null;
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder> tablePermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public boolean hasTablePermission() {
+        return ((bitField0_ & 0x00000008) == 0x00000008);
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission getTablePermission() {
+        if (tablePermissionBuilder_ == null) {
+          return tablePermission_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance() : tablePermission_;
+        } else {
+          return tablePermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder setTablePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission value) {
+        if (tablePermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          tablePermission_ = value;
+          onChanged();
+        } else {
+          tablePermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder setTablePermission(
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder builderForValue) {
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          tablePermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder mergeTablePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission value) {
+        if (tablePermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000008) == 0x00000008) &&
+              tablePermission_ != null &&
+              tablePermission_ != org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()) {
+            tablePermission_ =
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.newBuilder(tablePermission_).mergeFrom(value).buildPartial();
+          } else {
+            tablePermission_ = value;
+          }
+          onChanged();
+        } else {
+          tablePermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder clearTablePermission() {
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = null;
+          onChanged();
+        } else {
+          tablePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder getTablePermissionBuilder() {
+        bitField0_ |= 0x00000008;
+        onChanged();
+        return getTablePermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder getTablePermissionOrBuilder() {
+        if (tablePermissionBuilder_ != null) {
+          return tablePermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return tablePermission_ == null ?
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance() : tablePermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      private org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder>
+          getTablePermissionFieldBuilder() {
+        if (tablePermissionBuilder_ == null) {
+          tablePermissionBuilder_ = new org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder>(
+                  getTablePermission(),
+                  getParentForChildren(),
+                  isClean());
+          tablePermission_ = null;
+        }
+        return tablePermissionBuilder_;
+      }
+      public final Builder setUnknownFields(
+          final org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      public final Builder mergeUnknownFields(
+          final org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:hbase.pb.Permission)
+    }
+
+    // @@protoc_insertion_point(class_scope:hbase.pb.Permission)
+    private static final org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission();
+    }
+
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    @java.lang.Deprecated public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission>
+        PARSER = new org.apache.hadoop.hbase.shaded.com.google.protobuf.AbstractParser<Permission>() {
+      public Permission parsePartialFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+          return new Permission(input, extensionRegistry);
+      }
+    };
+
+    public static org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission> getParserForType() {
+      return PARSER;
+    }
+
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface TablePermissionOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.TablePermission)
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    boolean hasTableName();
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName getTableName();
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder getTableNameOrBuilder();
+
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    boolean hasFamily();
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString getFamily();
+
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    boolean hasQualifier();
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString getQualifier();
+
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action> getActionList();
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    int getActionCount();
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action getAction(int index);
+  }
+  /**
+   * Protobuf type {@code hbase.pb.TablePermission}
+   */
+  public  static final class TablePermission extends
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3 implements
+      // @@protoc_insertion_point(message_implements:hbase.pb.TablePermission)
+      TablePermissionOrBuilder {
+    // Use TablePermission.newBuilder() to construct.
+    private TablePermission(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+      super(builder);
+    }
+    private TablePermission() {
+      family_ = org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+      qualifier_ = org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+      action_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    public final org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TablePermission(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      this();
+      int mutable_bitField0_ = 0;
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                subBuilder = tableName_.toBuilder();
+              }
+              tableName_ = input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tableName_);
+                tableName_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000001;
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              family_ = input.readBytes();
+              break;
+            }
+            case 26: {
+              bitField0_ |= 0x00000004;
+              qualifier_ = input.readBytes();
+              break;
+            }
+            case 32: {
+              int rawValue = input.readEnum();
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action value = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(4, rawValue);
+              } else {
+                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+                  action_ = new java.util.ArrayList<java.lang.Integer>();
+                  mutable_bitField0_ |= 0x00000008;
+                }
+                action_.add(rawValue);
+              }
+              break;
+            }
+            case 34: {
+              int length = input.readRawVarint32();
+              int oldLimit = input.pushLimit(length);
+              while(input.getBytesUntilLimit() > 0) {
+                int rawValue = input.readEnum();
+                org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action value = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(rawValue);
+                if (value == null) {
+                  unknownFields.mergeVarintField(4, rawValue);
+                } else {
+                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+                    action_ = new java.util.ArrayList<java.lang.Integer>();
+                    mutable_bitField0_ |= 0x00000008;
+                  }
+                  action_.add(rawValue);
+                }
+              }
+              input.popLimit(oldLimit);
+              break;
+            }
+          }
+        }
+      } catch (org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+          action_ = java.util.Collections.unmodifiableList(action_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+    }
+
+    protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.class, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder.class);
+    }
+
+    private int bitField0_;
+    public static final int TABLE_NAME_FIELD_NUMBER = 1;
+    private org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName tableName_;
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public boolean hasTableName() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName getTableName() {
+      return tableName_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+    }
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder getTableNameOrBuilder() {
+      return tableName_ == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance() : tableName_;
+    }
+
+    public static final int FAMILY_FIELD_NUMBER = 2;
+    private org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString family_;
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    public boolean hasFamily() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString getFamily() {
+      return family_;
+    }
+
+    public static final int QUALIFIER_FIELD_NUMBER = 3;
+    private org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString qualifier_;
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    public boolean hasQualifier() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString getQualifier() {
+      return qualifier_;
+    }
+
+    public static final int ACTION_FIELD_NUMBER = 4;
+    private java.util.List<java.lang.Integer> action_;
+    private static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter.Converter<
+        java.lang.Integer, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action> action_converter_ =
+            new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter.Converter<
+                java.lang.Integer, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>() {
+              public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action convert(java.lang.Integer from) {
+                org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action result = org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(from);
+                return result == null ? org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.READ : result;
+              }
+            };
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action> getActionList() {
+      return new org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter<
+          java.lang.Integer, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>(action_, action_converter_);
+    }
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public int getActionCount() {
+      return action_.size();
+    }
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action getAction(int index) {
+      return action_converter_.convert(action_.get(index));
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (hasTableName()) {
+        if (!getTableName().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeMessage(1, getTableName());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeBytes(2, family_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeBytes(3, qualifier_);
+      }
+      for (int i = 0; i < action_.size(); i++) {
+        output.writeEnum(4, action_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, getTableName());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, family_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeBytesSize(3, qualifier_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < action_.size(); i++) {
+          dataSize += org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+            .computeEnumSizeNoTag(action_.get(i));
+        }
+        size += dataSize;
+        size += 1 * action_.size();
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission)) {
+        return super.equals(obj);
+      }
+      org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission other = (org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission) obj;
+
+      boolean result = true;
+      result = result && (hasTableName() == other.hasTableName());
+      if (hasTableName()) {
+        result = result && getTableName()
+            .equals(other.getTableName());
+      }
+      result = result && (hasFamily() == other.hasFamily());
+      if (hasFamily()) {
+        result = result && getFamily()
+            .equals(other.getFamily());
+      }
+      result = result && (hasQualifier() == other.hasQualifier());
+      if (hasQualifier()) {
+        result = result && getQualifier()
+            .equals(other.getQualifier());
+      }
+      result = result && action_.equals(other.action_);
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasTableName()) {
+        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
+        hash = (53 * hash) + getTableName().hashCode();
+      }
+      if (hasFamily()) {
+        hash = (37 * hash) + FAMILY_FIELD_NUMBER;
+        hash = (53 * hash) + getFamily().hashCode();
+      }
+      if (hasQualifier()) {
+        hash = (37 * hash) + QUALIFIER_FIELD_NUMBER;
+        hash = (53 * hash) + getQualifier().hashCode();
+      }
+      if (getActionCount() > 0) {
+        hash = (37 * hash) + ACTION_FIELD_NUMBER;
+        hash = (53 * hash) + action_.hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(byte[] data)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        byte[] data,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        java.io.InputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseDelimitedFrom(
+        java.io.InputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code hbase.pb.TablePermission}
+     */
+    public static final class Builder extends
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+        // @@protoc_insertion_point(builder_implements:hbase.pb.TablePermission)
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder {
+      public static final org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+      }
+
+      protected org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.class, org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder.class);
+      }
+
+      // Construct using org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getTableNameFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        if (tableNameBuilder_ == null) {
+          tableName_ = null;
+        } else {
+          tableNameBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000001);
+        family_ = org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        qualifier_ = org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        action_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+
+      public org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission getDefaultInstanceForType() {
+        return org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance();
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission build() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission buildPartial() {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission result = new org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        if (tableNameBuilder_ == null) {
+          result.tableName_ = tableName_;
+        } else {
+          result.tableName_ = tableNameBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.family_ = family_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.qualifier_ = qualifier_;
+        if (((bitField0_ & 0x00000008) == 0x00000008)) {
+          action_ = java.util.Collections.unmodifiableList(action_);
+          bitField0_ = (bitField0_ & ~0x00000008);
+        }
+        result.action_ = action_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.com.google.protobuf.Message other) {
+        if (other instanceof org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission) {
+          return mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission other) {
+        if (other == org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()) return this;
+        if (other.hasTableName()) {
+          mergeTableName(other.getTableName());
+        }
+        if (other.hasFamily()) {
+          setFamily(other.getFamily());
+        }
+        if (other.hasQualifier()) {
+          setQualifier(other.getQualifier());
+        }
+        if (!other.action_.isEmpty()) {
+          if (action_.isEmpty()) {
+            action_ = other.action_;
+            bitField0_ = (bitField0_ & ~0x00000008);
+          } else {
+            ensureActionIsMutable();
+            action_.addAll(other.action_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (hasTableName()) {
+          if (!getTableName().isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream input,
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission parsedMessage = null

<TRUNCATED>