public static void assertSnapshotRequestIsValid(SnapshotProtos.SnapshotDescription snapshot)
    throws IllegalArgumentException {
    // make sure the snapshot name is valid
    TableName.isLegalTableQualifierName(Bytes.toBytes(snapshot.getName()), true);
    if (snapshot.hasTable()) {
      // make sure the table name is valid, this will implicitly check validity
      TableName tableName = TableName.valueOf(snapshot.getTable());

      if (tableName.isSystemTable() && !tableName.isBackupsTable()) {
        throw new IllegalArgumentException("System table snapshots are not allowed");
      }
    }
  }
Check to make sure that the description of the snapshot requested is valid
@param snapshot description of the snapshot
@throws IllegalArgumentException if the name of the snapshot or the name of the table to
                                 snapshot are not valid names
hbase-client/src/main/java/org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java