You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/10/04 19:42:07 UTC

[1/2] airavata git commit: implementing sharing and revoking

Repository: airavata
Updated Branches:
  refs/heads/airavata-gov-registry a99f76612 -> 244e8416e


http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/GovRegistryService.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/GovRegistryService.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/GovRegistryService.java
index a7c424e..030f538 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/GovRegistryService.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/service/cpi/GovRegistryService.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class GovRegistryService {
 
   public interface Iface {
@@ -151,15 +151,15 @@ public class GovRegistryService {
      * 
      * @param entityId
      * @param userList
-     * @param perssionType
+     * @param perssionTypeId
      */
-    public boolean shareEntityWithUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
+    public boolean shareEntityWithUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
 
-    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
+    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
 
-    public boolean shareEntityWithGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
+    public boolean shareEntityWithGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
 
-    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
+    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException;
 
   }
 
@@ -235,13 +235,13 @@ public class GovRegistryService {
 
     public void getPermissionTypes(String domain, int offset, int limit, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void shareEntityWithUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void shareEntityWithUsers(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void revokeEntitySharingFromUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void revokeEntitySharingFromUsers(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void shareEntityWithGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void shareEntityWithGroups(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void revokeEntitySharingFromGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void revokeEntitySharingFromGroups(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
   }
 
@@ -1191,18 +1191,18 @@ public class GovRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getPermissionTypes failed: unknown result");
     }
 
-    public boolean shareEntityWithUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
+    public boolean shareEntityWithUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
     {
-      send_shareEntityWithUsers(entityId, userList, perssionType);
+      send_shareEntityWithUsers(entityId, userList, perssionTypeId);
       return recv_shareEntityWithUsers();
     }
 
-    public void send_shareEntityWithUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.thrift.TException
+    public void send_shareEntityWithUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.thrift.TException
     {
       shareEntityWithUsers_args args = new shareEntityWithUsers_args();
       args.setEntityId(entityId);
       args.setUserList(userList);
-      args.setPerssionType(perssionType);
+      args.setPerssionTypeId(perssionTypeId);
       sendBase("shareEntityWithUsers", args);
     }
 
@@ -1219,18 +1219,18 @@ public class GovRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "shareEntityWithUsers failed: unknown result");
     }
 
-    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
+    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
     {
-      send_revokeEntitySharingFromUsers(entityId, userList, perssionType);
+      send_revokeEntitySharingFromUsers(entityId, userList, perssionTypeId);
       return recv_revokeEntitySharingFromUsers();
     }
 
-    public void send_revokeEntitySharingFromUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.thrift.TException
+    public void send_revokeEntitySharingFromUsers(String entityId, List<String> userList, String perssionTypeId) throws org.apache.thrift.TException
     {
       revokeEntitySharingFromUsers_args args = new revokeEntitySharingFromUsers_args();
       args.setEntityId(entityId);
       args.setUserList(userList);
-      args.setPerssionType(perssionType);
+      args.setPerssionTypeId(perssionTypeId);
       sendBase("revokeEntitySharingFromUsers", args);
     }
 
@@ -1247,18 +1247,18 @@ public class GovRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "revokeEntitySharingFromUsers failed: unknown result");
     }
 
-    public boolean shareEntityWithGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
+    public boolean shareEntityWithGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
     {
-      send_shareEntityWithGroups(entityId, groupList, perssionType);
+      send_shareEntityWithGroups(entityId, groupList, perssionTypeId);
       return recv_shareEntityWithGroups();
     }
 
-    public void send_shareEntityWithGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.thrift.TException
+    public void send_shareEntityWithGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.thrift.TException
     {
       shareEntityWithGroups_args args = new shareEntityWithGroups_args();
       args.setEntityId(entityId);
       args.setGroupList(groupList);
-      args.setPerssionType(perssionType);
+      args.setPerssionTypeId(perssionTypeId);
       sendBase("shareEntityWithGroups", args);
     }
 
@@ -1275,18 +1275,18 @@ public class GovRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "shareEntityWithGroups failed: unknown result");
     }
 
-    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
+    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.airavata.sharing.registry.models.GovRegistryException, org.apache.thrift.TException
     {
-      send_revokeEntitySharingFromGroups(entityId, groupList, perssionType);
+      send_revokeEntitySharingFromGroups(entityId, groupList, perssionTypeId);
       return recv_revokeEntitySharingFromGroups();
     }
 
-    public void send_revokeEntitySharingFromGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType) throws org.apache.thrift.TException
+    public void send_revokeEntitySharingFromGroups(String entityId, List<String> groupList, String perssionTypeId) throws org.apache.thrift.TException
     {
       revokeEntitySharingFromGroups_args args = new revokeEntitySharingFromGroups_args();
       args.setEntityId(entityId);
       args.setGroupList(groupList);
-      args.setPerssionType(perssionType);
+      args.setPerssionTypeId(perssionTypeId);
       sendBase("revokeEntitySharingFromGroups", args);
     }
 
@@ -2498,9 +2498,9 @@ public class GovRegistryService {
       }
     }
 
-    public void shareEntityWithUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void shareEntityWithUsers(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      shareEntityWithUsers_call method_call = new shareEntityWithUsers_call(entityId, userList, perssionType, resultHandler, this, ___protocolFactory, ___transport);
+      shareEntityWithUsers_call method_call = new shareEntityWithUsers_call(entityId, userList, perssionTypeId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -2508,12 +2508,12 @@ public class GovRegistryService {
     public static class shareEntityWithUsers_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String entityId;
       private List<String> userList;
-      private org.apache.airavata.sharing.registry.models.PermissionType perssionType;
-      public shareEntityWithUsers_call(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private String perssionTypeId;
+      public shareEntityWithUsers_call(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.entityId = entityId;
         this.userList = userList;
-        this.perssionType = perssionType;
+        this.perssionTypeId = perssionTypeId;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -2521,7 +2521,7 @@ public class GovRegistryService {
         shareEntityWithUsers_args args = new shareEntityWithUsers_args();
         args.setEntityId(entityId);
         args.setUserList(userList);
-        args.setPerssionType(perssionType);
+        args.setPerssionTypeId(perssionTypeId);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -2536,9 +2536,9 @@ public class GovRegistryService {
       }
     }
 
-    public void revokeEntitySharingFromUsers(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void revokeEntitySharingFromUsers(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      revokeEntitySharingFromUsers_call method_call = new revokeEntitySharingFromUsers_call(entityId, userList, perssionType, resultHandler, this, ___protocolFactory, ___transport);
+      revokeEntitySharingFromUsers_call method_call = new revokeEntitySharingFromUsers_call(entityId, userList, perssionTypeId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -2546,12 +2546,12 @@ public class GovRegistryService {
     public static class revokeEntitySharingFromUsers_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String entityId;
       private List<String> userList;
-      private org.apache.airavata.sharing.registry.models.PermissionType perssionType;
-      public revokeEntitySharingFromUsers_call(String entityId, List<String> userList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private String perssionTypeId;
+      public revokeEntitySharingFromUsers_call(String entityId, List<String> userList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.entityId = entityId;
         this.userList = userList;
-        this.perssionType = perssionType;
+        this.perssionTypeId = perssionTypeId;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -2559,7 +2559,7 @@ public class GovRegistryService {
         revokeEntitySharingFromUsers_args args = new revokeEntitySharingFromUsers_args();
         args.setEntityId(entityId);
         args.setUserList(userList);
-        args.setPerssionType(perssionType);
+        args.setPerssionTypeId(perssionTypeId);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -2574,9 +2574,9 @@ public class GovRegistryService {
       }
     }
 
-    public void shareEntityWithGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void shareEntityWithGroups(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      shareEntityWithGroups_call method_call = new shareEntityWithGroups_call(entityId, groupList, perssionType, resultHandler, this, ___protocolFactory, ___transport);
+      shareEntityWithGroups_call method_call = new shareEntityWithGroups_call(entityId, groupList, perssionTypeId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -2584,12 +2584,12 @@ public class GovRegistryService {
     public static class shareEntityWithGroups_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String entityId;
       private List<String> groupList;
-      private org.apache.airavata.sharing.registry.models.PermissionType perssionType;
-      public shareEntityWithGroups_call(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private String perssionTypeId;
+      public shareEntityWithGroups_call(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.entityId = entityId;
         this.groupList = groupList;
-        this.perssionType = perssionType;
+        this.perssionTypeId = perssionTypeId;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -2597,7 +2597,7 @@ public class GovRegistryService {
         shareEntityWithGroups_args args = new shareEntityWithGroups_args();
         args.setEntityId(entityId);
         args.setGroupList(groupList);
-        args.setPerssionType(perssionType);
+        args.setPerssionTypeId(perssionTypeId);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -2612,9 +2612,9 @@ public class GovRegistryService {
       }
     }
 
-    public void revokeEntitySharingFromGroups(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void revokeEntitySharingFromGroups(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      revokeEntitySharingFromGroups_call method_call = new revokeEntitySharingFromGroups_call(entityId, groupList, perssionType, resultHandler, this, ___protocolFactory, ___transport);
+      revokeEntitySharingFromGroups_call method_call = new revokeEntitySharingFromGroups_call(entityId, groupList, perssionTypeId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -2622,12 +2622,12 @@ public class GovRegistryService {
     public static class revokeEntitySharingFromGroups_call extends org.apache.thrift.async.TAsyncMethodCall {
       private String entityId;
       private List<String> groupList;
-      private org.apache.airavata.sharing.registry.models.PermissionType perssionType;
-      public revokeEntitySharingFromGroups_call(String entityId, List<String> groupList, org.apache.airavata.sharing.registry.models.PermissionType perssionType, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private String perssionTypeId;
+      public revokeEntitySharingFromGroups_call(String entityId, List<String> groupList, String perssionTypeId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.entityId = entityId;
         this.groupList = groupList;
-        this.perssionType = perssionType;
+        this.perssionTypeId = perssionTypeId;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -2635,7 +2635,7 @@ public class GovRegistryService {
         revokeEntitySharingFromGroups_args args = new revokeEntitySharingFromGroups_args();
         args.setEntityId(entityId);
         args.setGroupList(groupList);
-        args.setPerssionType(perssionType);
+        args.setPerssionTypeId(perssionTypeId);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -3573,7 +3573,7 @@ public class GovRegistryService {
       public shareEntityWithUsers_result getResult(I iface, shareEntityWithUsers_args args) throws org.apache.thrift.TException {
         shareEntityWithUsers_result result = new shareEntityWithUsers_result();
         try {
-          result.success = iface.shareEntityWithUsers(args.entityId, args.userList, args.perssionType);
+          result.success = iface.shareEntityWithUsers(args.entityId, args.userList, args.perssionTypeId);
           result.setSuccessIsSet(true);
         } catch (org.apache.airavata.sharing.registry.models.GovRegistryException gre) {
           result.gre = gre;
@@ -3598,7 +3598,7 @@ public class GovRegistryService {
       public revokeEntitySharingFromUsers_result getResult(I iface, revokeEntitySharingFromUsers_args args) throws org.apache.thrift.TException {
         revokeEntitySharingFromUsers_result result = new revokeEntitySharingFromUsers_result();
         try {
-          result.success = iface.revokeEntitySharingFromUsers(args.entityId, args.userList, args.perssionType);
+          result.success = iface.revokeEntitySharingFromUsers(args.entityId, args.userList, args.perssionTypeId);
           result.setSuccessIsSet(true);
         } catch (org.apache.airavata.sharing.registry.models.GovRegistryException gre) {
           result.gre = gre;
@@ -3623,7 +3623,7 @@ public class GovRegistryService {
       public shareEntityWithGroups_result getResult(I iface, shareEntityWithGroups_args args) throws org.apache.thrift.TException {
         shareEntityWithGroups_result result = new shareEntityWithGroups_result();
         try {
-          result.success = iface.shareEntityWithGroups(args.entityId, args.groupList, args.perssionType);
+          result.success = iface.shareEntityWithGroups(args.entityId, args.groupList, args.perssionTypeId);
           result.setSuccessIsSet(true);
         } catch (org.apache.airavata.sharing.registry.models.GovRegistryException gre) {
           result.gre = gre;
@@ -3648,7 +3648,7 @@ public class GovRegistryService {
       public revokeEntitySharingFromGroups_result getResult(I iface, revokeEntitySharingFromGroups_args args) throws org.apache.thrift.TException {
         revokeEntitySharingFromGroups_result result = new revokeEntitySharingFromGroups_result();
         try {
-          result.success = iface.revokeEntitySharingFromGroups(args.entityId, args.groupList, args.perssionType);
+          result.success = iface.revokeEntitySharingFromGroups(args.entityId, args.groupList, args.perssionTypeId);
           result.setSuccessIsSet(true);
         } catch (org.apache.airavata.sharing.registry.models.GovRegistryException gre) {
           result.gre = gre;
@@ -5771,7 +5771,7 @@ public class GovRegistryService {
       }
 
       public void start(I iface, shareEntityWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.shareEntityWithUsers(args.entityId, args.userList, args.perssionType,resultHandler);
+        iface.shareEntityWithUsers(args.entityId, args.userList, args.perssionTypeId,resultHandler);
       }
     }
 
@@ -5829,7 +5829,7 @@ public class GovRegistryService {
       }
 
       public void start(I iface, revokeEntitySharingFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.revokeEntitySharingFromUsers(args.entityId, args.userList, args.perssionType,resultHandler);
+        iface.revokeEntitySharingFromUsers(args.entityId, args.userList, args.perssionTypeId,resultHandler);
       }
     }
 
@@ -5887,7 +5887,7 @@ public class GovRegistryService {
       }
 
       public void start(I iface, shareEntityWithGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.shareEntityWithGroups(args.entityId, args.groupList, args.perssionType,resultHandler);
+        iface.shareEntityWithGroups(args.entityId, args.groupList, args.perssionTypeId,resultHandler);
       }
     }
 
@@ -5945,7 +5945,7 @@ public class GovRegistryService {
       }
 
       public void start(I iface, revokeEntitySharingFromGroups_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.revokeEntitySharingFromGroups(args.entityId, args.groupList, args.perssionType,resultHandler);
+        iface.revokeEntitySharingFromGroups(args.entityId, args.groupList, args.perssionTypeId,resultHandler);
       }
     }
 
@@ -37123,7 +37123,7 @@ public class GovRegistryService {
 
     private static final org.apache.thrift.protocol.TField ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("entityId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField USER_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("userList", org.apache.thrift.protocol.TType.LIST, (short)2);
-    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionType", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionTypeId", org.apache.thrift.protocol.TType.STRING, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -37133,13 +37133,13 @@ public class GovRegistryService {
 
     public String entityId; // required
     public List<String> userList; // required
-    public org.apache.airavata.sharing.registry.models.PermissionType perssionType; // required
+    public String perssionTypeId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       ENTITY_ID((short)1, "entityId"),
       USER_LIST((short)2, "userList"),
-      PERSSION_TYPE((short)3, "perssionType");
+      PERSSION_TYPE_ID((short)3, "perssionTypeId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -37158,8 +37158,8 @@ public class GovRegistryService {
             return ENTITY_ID;
           case 2: // USER_LIST
             return USER_LIST;
-          case 3: // PERSSION_TYPE
-            return PERSSION_TYPE;
+          case 3: // PERSSION_TYPE_ID
+            return PERSSION_TYPE_ID;
           default:
             return null;
         }
@@ -37208,8 +37208,8 @@ public class GovRegistryService {
       tmpMap.put(_Fields.USER_LIST, new org.apache.thrift.meta_data.FieldMetaData("userList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-      tmpMap.put(_Fields.PERSSION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("perssionType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.sharing.registry.models.PermissionType.class)));
+      tmpMap.put(_Fields.PERSSION_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("perssionTypeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(shareEntityWithUsers_args.class, metaDataMap);
     }
@@ -37220,12 +37220,12 @@ public class GovRegistryService {
     public shareEntityWithUsers_args(
       String entityId,
       List<String> userList,
-      org.apache.airavata.sharing.registry.models.PermissionType perssionType)
+      String perssionTypeId)
     {
       this();
       this.entityId = entityId;
       this.userList = userList;
-      this.perssionType = perssionType;
+      this.perssionTypeId = perssionTypeId;
     }
 
     /**
@@ -37239,8 +37239,8 @@ public class GovRegistryService {
         List<String> __this__userList = new ArrayList<String>(other.userList);
         this.userList = __this__userList;
       }
-      if (other.isSetPerssionType()) {
-        this.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType(other.perssionType);
+      if (other.isSetPerssionTypeId()) {
+        this.perssionTypeId = other.perssionTypeId;
       }
     }
 
@@ -37252,7 +37252,7 @@ public class GovRegistryService {
     public void clear() {
       this.entityId = null;
       this.userList = null;
-      this.perssionType = null;
+      this.perssionTypeId = null;
     }
 
     public String getEntityId() {
@@ -37318,27 +37318,27 @@ public class GovRegistryService {
       }
     }
 
-    public org.apache.airavata.sharing.registry.models.PermissionType getPerssionType() {
-      return this.perssionType;
+    public String getPerssionTypeId() {
+      return this.perssionTypeId;
     }
 
-    public shareEntityWithUsers_args setPerssionType(org.apache.airavata.sharing.registry.models.PermissionType perssionType) {
-      this.perssionType = perssionType;
+    public shareEntityWithUsers_args setPerssionTypeId(String perssionTypeId) {
+      this.perssionTypeId = perssionTypeId;
       return this;
     }
 
-    public void unsetPerssionType() {
-      this.perssionType = null;
+    public void unsetPerssionTypeId() {
+      this.perssionTypeId = null;
     }
 
-    /** Returns true if field perssionType is set (has been assigned a value) and false otherwise */
-    public boolean isSetPerssionType() {
-      return this.perssionType != null;
+    /** Returns true if field perssionTypeId is set (has been assigned a value) and false otherwise */
+    public boolean isSetPerssionTypeId() {
+      return this.perssionTypeId != null;
     }
 
-    public void setPerssionTypeIsSet(boolean value) {
+    public void setPerssionTypeIdIsSet(boolean value) {
       if (!value) {
-        this.perssionType = null;
+        this.perssionTypeId = null;
       }
     }
 
@@ -37360,11 +37360,11 @@ public class GovRegistryService {
         }
         break;
 
-      case PERSSION_TYPE:
+      case PERSSION_TYPE_ID:
         if (value == null) {
-          unsetPerssionType();
+          unsetPerssionTypeId();
         } else {
-          setPerssionType((org.apache.airavata.sharing.registry.models.PermissionType)value);
+          setPerssionTypeId((String)value);
         }
         break;
 
@@ -37379,8 +37379,8 @@ public class GovRegistryService {
       case USER_LIST:
         return getUserList();
 
-      case PERSSION_TYPE:
-        return getPerssionType();
+      case PERSSION_TYPE_ID:
+        return getPerssionTypeId();
 
       }
       throw new IllegalStateException();
@@ -37397,8 +37397,8 @@ public class GovRegistryService {
         return isSetEntityId();
       case USER_LIST:
         return isSetUserList();
-      case PERSSION_TYPE:
-        return isSetPerssionType();
+      case PERSSION_TYPE_ID:
+        return isSetPerssionTypeId();
       }
       throw new IllegalStateException();
     }
@@ -37434,12 +37434,12 @@ public class GovRegistryService {
           return false;
       }
 
-      boolean this_present_perssionType = true && this.isSetPerssionType();
-      boolean that_present_perssionType = true && that.isSetPerssionType();
-      if (this_present_perssionType || that_present_perssionType) {
-        if (!(this_present_perssionType && that_present_perssionType))
+      boolean this_present_perssionTypeId = true && this.isSetPerssionTypeId();
+      boolean that_present_perssionTypeId = true && that.isSetPerssionTypeId();
+      if (this_present_perssionTypeId || that_present_perssionTypeId) {
+        if (!(this_present_perssionTypeId && that_present_perssionTypeId))
           return false;
-        if (!this.perssionType.equals(that.perssionType))
+        if (!this.perssionTypeId.equals(that.perssionTypeId))
           return false;
       }
 
@@ -37460,10 +37460,10 @@ public class GovRegistryService {
       if (present_userList)
         list.add(userList);
 
-      boolean present_perssionType = true && (isSetPerssionType());
-      list.add(present_perssionType);
-      if (present_perssionType)
-        list.add(perssionType);
+      boolean present_perssionTypeId = true && (isSetPerssionTypeId());
+      list.add(present_perssionTypeId);
+      if (present_perssionTypeId)
+        list.add(perssionTypeId);
 
       return list.hashCode();
     }
@@ -37496,12 +37496,12 @@ public class GovRegistryService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetPerssionType()).compareTo(other.isSetPerssionType());
+      lastComparison = Boolean.valueOf(isSetPerssionTypeId()).compareTo(other.isSetPerssionTypeId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetPerssionType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionType, other.perssionType);
+      if (isSetPerssionTypeId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionTypeId, other.perssionTypeId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -37542,11 +37542,11 @@ public class GovRegistryService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("perssionType:");
-      if (this.perssionType == null) {
+      sb.append("perssionTypeId:");
+      if (this.perssionTypeId == null) {
         sb.append("null");
       } else {
-        sb.append(this.perssionType);
+        sb.append(this.perssionTypeId);
       }
       first = false;
       sb.append(")");
@@ -37561,13 +37561,10 @@ public class GovRegistryService {
       if (userList == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'userList' was not present! Struct: " + toString());
       }
-      if (perssionType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionType' was not present! Struct: " + toString());
+      if (perssionTypeId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionTypeId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (perssionType != null) {
-        perssionType.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -37630,11 +37627,10 @@ public class GovRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // PERSSION_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-                struct.perssionType.read(iprot);
-                struct.setPerssionTypeIsSet(true);
+            case 3: // PERSSION_TYPE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.perssionTypeId = iprot.readString();
+                struct.setPerssionTypeIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -37671,9 +37667,9 @@ public class GovRegistryService {
           }
           oprot.writeFieldEnd();
         }
-        if (struct.perssionType != null) {
-          oprot.writeFieldBegin(PERSSION_TYPE_FIELD_DESC);
-          struct.perssionType.write(oprot);
+        if (struct.perssionTypeId != null) {
+          oprot.writeFieldBegin(PERSSION_TYPE_ID_FIELD_DESC);
+          oprot.writeString(struct.perssionTypeId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -37701,7 +37697,7 @@ public class GovRegistryService {
             oprot.writeString(_iter88);
           }
         }
-        struct.perssionType.write(oprot);
+        oprot.writeString(struct.perssionTypeId);
       }
 
       @Override
@@ -37720,9 +37716,8 @@ public class GovRegistryService {
           }
         }
         struct.setUserListIsSet(true);
-        struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-        struct.perssionType.read(iprot);
-        struct.setPerssionTypeIsSet(true);
+        struct.perssionTypeId = iprot.readString();
+        struct.setPerssionTypeIdIsSet(true);
       }
     }
 
@@ -38201,7 +38196,7 @@ public class GovRegistryService {
 
     private static final org.apache.thrift.protocol.TField ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("entityId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField USER_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("userList", org.apache.thrift.protocol.TType.LIST, (short)2);
-    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionType", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionTypeId", org.apache.thrift.protocol.TType.STRING, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -38211,13 +38206,13 @@ public class GovRegistryService {
 
     public String entityId; // required
     public List<String> userList; // required
-    public org.apache.airavata.sharing.registry.models.PermissionType perssionType; // required
+    public String perssionTypeId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       ENTITY_ID((short)1, "entityId"),
       USER_LIST((short)2, "userList"),
-      PERSSION_TYPE((short)3, "perssionType");
+      PERSSION_TYPE_ID((short)3, "perssionTypeId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -38236,8 +38231,8 @@ public class GovRegistryService {
             return ENTITY_ID;
           case 2: // USER_LIST
             return USER_LIST;
-          case 3: // PERSSION_TYPE
-            return PERSSION_TYPE;
+          case 3: // PERSSION_TYPE_ID
+            return PERSSION_TYPE_ID;
           default:
             return null;
         }
@@ -38286,8 +38281,8 @@ public class GovRegistryService {
       tmpMap.put(_Fields.USER_LIST, new org.apache.thrift.meta_data.FieldMetaData("userList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-      tmpMap.put(_Fields.PERSSION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("perssionType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.sharing.registry.models.PermissionType.class)));
+      tmpMap.put(_Fields.PERSSION_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("perssionTypeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeEntitySharingFromUsers_args.class, metaDataMap);
     }
@@ -38298,12 +38293,12 @@ public class GovRegistryService {
     public revokeEntitySharingFromUsers_args(
       String entityId,
       List<String> userList,
-      org.apache.airavata.sharing.registry.models.PermissionType perssionType)
+      String perssionTypeId)
     {
       this();
       this.entityId = entityId;
       this.userList = userList;
-      this.perssionType = perssionType;
+      this.perssionTypeId = perssionTypeId;
     }
 
     /**
@@ -38317,8 +38312,8 @@ public class GovRegistryService {
         List<String> __this__userList = new ArrayList<String>(other.userList);
         this.userList = __this__userList;
       }
-      if (other.isSetPerssionType()) {
-        this.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType(other.perssionType);
+      if (other.isSetPerssionTypeId()) {
+        this.perssionTypeId = other.perssionTypeId;
       }
     }
 
@@ -38330,7 +38325,7 @@ public class GovRegistryService {
     public void clear() {
       this.entityId = null;
       this.userList = null;
-      this.perssionType = null;
+      this.perssionTypeId = null;
     }
 
     public String getEntityId() {
@@ -38396,27 +38391,27 @@ public class GovRegistryService {
       }
     }
 
-    public org.apache.airavata.sharing.registry.models.PermissionType getPerssionType() {
-      return this.perssionType;
+    public String getPerssionTypeId() {
+      return this.perssionTypeId;
     }
 
-    public revokeEntitySharingFromUsers_args setPerssionType(org.apache.airavata.sharing.registry.models.PermissionType perssionType) {
-      this.perssionType = perssionType;
+    public revokeEntitySharingFromUsers_args setPerssionTypeId(String perssionTypeId) {
+      this.perssionTypeId = perssionTypeId;
       return this;
     }
 
-    public void unsetPerssionType() {
-      this.perssionType = null;
+    public void unsetPerssionTypeId() {
+      this.perssionTypeId = null;
     }
 
-    /** Returns true if field perssionType is set (has been assigned a value) and false otherwise */
-    public boolean isSetPerssionType() {
-      return this.perssionType != null;
+    /** Returns true if field perssionTypeId is set (has been assigned a value) and false otherwise */
+    public boolean isSetPerssionTypeId() {
+      return this.perssionTypeId != null;
     }
 
-    public void setPerssionTypeIsSet(boolean value) {
+    public void setPerssionTypeIdIsSet(boolean value) {
       if (!value) {
-        this.perssionType = null;
+        this.perssionTypeId = null;
       }
     }
 
@@ -38438,11 +38433,11 @@ public class GovRegistryService {
         }
         break;
 
-      case PERSSION_TYPE:
+      case PERSSION_TYPE_ID:
         if (value == null) {
-          unsetPerssionType();
+          unsetPerssionTypeId();
         } else {
-          setPerssionType((org.apache.airavata.sharing.registry.models.PermissionType)value);
+          setPerssionTypeId((String)value);
         }
         break;
 
@@ -38457,8 +38452,8 @@ public class GovRegistryService {
       case USER_LIST:
         return getUserList();
 
-      case PERSSION_TYPE:
-        return getPerssionType();
+      case PERSSION_TYPE_ID:
+        return getPerssionTypeId();
 
       }
       throw new IllegalStateException();
@@ -38475,8 +38470,8 @@ public class GovRegistryService {
         return isSetEntityId();
       case USER_LIST:
         return isSetUserList();
-      case PERSSION_TYPE:
-        return isSetPerssionType();
+      case PERSSION_TYPE_ID:
+        return isSetPerssionTypeId();
       }
       throw new IllegalStateException();
     }
@@ -38512,12 +38507,12 @@ public class GovRegistryService {
           return false;
       }
 
-      boolean this_present_perssionType = true && this.isSetPerssionType();
-      boolean that_present_perssionType = true && that.isSetPerssionType();
-      if (this_present_perssionType || that_present_perssionType) {
-        if (!(this_present_perssionType && that_present_perssionType))
+      boolean this_present_perssionTypeId = true && this.isSetPerssionTypeId();
+      boolean that_present_perssionTypeId = true && that.isSetPerssionTypeId();
+      if (this_present_perssionTypeId || that_present_perssionTypeId) {
+        if (!(this_present_perssionTypeId && that_present_perssionTypeId))
           return false;
-        if (!this.perssionType.equals(that.perssionType))
+        if (!this.perssionTypeId.equals(that.perssionTypeId))
           return false;
       }
 
@@ -38538,10 +38533,10 @@ public class GovRegistryService {
       if (present_userList)
         list.add(userList);
 
-      boolean present_perssionType = true && (isSetPerssionType());
-      list.add(present_perssionType);
-      if (present_perssionType)
-        list.add(perssionType);
+      boolean present_perssionTypeId = true && (isSetPerssionTypeId());
+      list.add(present_perssionTypeId);
+      if (present_perssionTypeId)
+        list.add(perssionTypeId);
 
       return list.hashCode();
     }
@@ -38574,12 +38569,12 @@ public class GovRegistryService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetPerssionType()).compareTo(other.isSetPerssionType());
+      lastComparison = Boolean.valueOf(isSetPerssionTypeId()).compareTo(other.isSetPerssionTypeId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetPerssionType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionType, other.perssionType);
+      if (isSetPerssionTypeId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionTypeId, other.perssionTypeId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -38620,11 +38615,11 @@ public class GovRegistryService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("perssionType:");
-      if (this.perssionType == null) {
+      sb.append("perssionTypeId:");
+      if (this.perssionTypeId == null) {
         sb.append("null");
       } else {
-        sb.append(this.perssionType);
+        sb.append(this.perssionTypeId);
       }
       first = false;
       sb.append(")");
@@ -38639,13 +38634,10 @@ public class GovRegistryService {
       if (userList == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'userList' was not present! Struct: " + toString());
       }
-      if (perssionType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionType' was not present! Struct: " + toString());
+      if (perssionTypeId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionTypeId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (perssionType != null) {
-        perssionType.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -38708,11 +38700,10 @@ public class GovRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // PERSSION_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-                struct.perssionType.read(iprot);
-                struct.setPerssionTypeIsSet(true);
+            case 3: // PERSSION_TYPE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.perssionTypeId = iprot.readString();
+                struct.setPerssionTypeIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -38749,9 +38740,9 @@ public class GovRegistryService {
           }
           oprot.writeFieldEnd();
         }
-        if (struct.perssionType != null) {
-          oprot.writeFieldBegin(PERSSION_TYPE_FIELD_DESC);
-          struct.perssionType.write(oprot);
+        if (struct.perssionTypeId != null) {
+          oprot.writeFieldBegin(PERSSION_TYPE_ID_FIELD_DESC);
+          oprot.writeString(struct.perssionTypeId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -38779,7 +38770,7 @@ public class GovRegistryService {
             oprot.writeString(_iter96);
           }
         }
-        struct.perssionType.write(oprot);
+        oprot.writeString(struct.perssionTypeId);
       }
 
       @Override
@@ -38798,9 +38789,8 @@ public class GovRegistryService {
           }
         }
         struct.setUserListIsSet(true);
-        struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-        struct.perssionType.read(iprot);
-        struct.setPerssionTypeIsSet(true);
+        struct.perssionTypeId = iprot.readString();
+        struct.setPerssionTypeIdIsSet(true);
       }
     }
 
@@ -39279,7 +39269,7 @@ public class GovRegistryService {
 
     private static final org.apache.thrift.protocol.TField ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("entityId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField GROUP_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("groupList", org.apache.thrift.protocol.TType.LIST, (short)2);
-    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionType", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionTypeId", org.apache.thrift.protocol.TType.STRING, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -39289,13 +39279,13 @@ public class GovRegistryService {
 
     public String entityId; // required
     public List<String> groupList; // required
-    public org.apache.airavata.sharing.registry.models.PermissionType perssionType; // required
+    public String perssionTypeId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       ENTITY_ID((short)1, "entityId"),
       GROUP_LIST((short)2, "groupList"),
-      PERSSION_TYPE((short)3, "perssionType");
+      PERSSION_TYPE_ID((short)3, "perssionTypeId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -39314,8 +39304,8 @@ public class GovRegistryService {
             return ENTITY_ID;
           case 2: // GROUP_LIST
             return GROUP_LIST;
-          case 3: // PERSSION_TYPE
-            return PERSSION_TYPE;
+          case 3: // PERSSION_TYPE_ID
+            return PERSSION_TYPE_ID;
           default:
             return null;
         }
@@ -39364,8 +39354,8 @@ public class GovRegistryService {
       tmpMap.put(_Fields.GROUP_LIST, new org.apache.thrift.meta_data.FieldMetaData("groupList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-      tmpMap.put(_Fields.PERSSION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("perssionType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.sharing.registry.models.PermissionType.class)));
+      tmpMap.put(_Fields.PERSSION_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("perssionTypeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(shareEntityWithGroups_args.class, metaDataMap);
     }
@@ -39376,12 +39366,12 @@ public class GovRegistryService {
     public shareEntityWithGroups_args(
       String entityId,
       List<String> groupList,
-      org.apache.airavata.sharing.registry.models.PermissionType perssionType)
+      String perssionTypeId)
     {
       this();
       this.entityId = entityId;
       this.groupList = groupList;
-      this.perssionType = perssionType;
+      this.perssionTypeId = perssionTypeId;
     }
 
     /**
@@ -39395,8 +39385,8 @@ public class GovRegistryService {
         List<String> __this__groupList = new ArrayList<String>(other.groupList);
         this.groupList = __this__groupList;
       }
-      if (other.isSetPerssionType()) {
-        this.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType(other.perssionType);
+      if (other.isSetPerssionTypeId()) {
+        this.perssionTypeId = other.perssionTypeId;
       }
     }
 
@@ -39408,7 +39398,7 @@ public class GovRegistryService {
     public void clear() {
       this.entityId = null;
       this.groupList = null;
-      this.perssionType = null;
+      this.perssionTypeId = null;
     }
 
     public String getEntityId() {
@@ -39474,27 +39464,27 @@ public class GovRegistryService {
       }
     }
 
-    public org.apache.airavata.sharing.registry.models.PermissionType getPerssionType() {
-      return this.perssionType;
+    public String getPerssionTypeId() {
+      return this.perssionTypeId;
     }
 
-    public shareEntityWithGroups_args setPerssionType(org.apache.airavata.sharing.registry.models.PermissionType perssionType) {
-      this.perssionType = perssionType;
+    public shareEntityWithGroups_args setPerssionTypeId(String perssionTypeId) {
+      this.perssionTypeId = perssionTypeId;
       return this;
     }
 
-    public void unsetPerssionType() {
-      this.perssionType = null;
+    public void unsetPerssionTypeId() {
+      this.perssionTypeId = null;
     }
 
-    /** Returns true if field perssionType is set (has been assigned a value) and false otherwise */
-    public boolean isSetPerssionType() {
-      return this.perssionType != null;
+    /** Returns true if field perssionTypeId is set (has been assigned a value) and false otherwise */
+    public boolean isSetPerssionTypeId() {
+      return this.perssionTypeId != null;
     }
 
-    public void setPerssionTypeIsSet(boolean value) {
+    public void setPerssionTypeIdIsSet(boolean value) {
       if (!value) {
-        this.perssionType = null;
+        this.perssionTypeId = null;
       }
     }
 
@@ -39516,11 +39506,11 @@ public class GovRegistryService {
         }
         break;
 
-      case PERSSION_TYPE:
+      case PERSSION_TYPE_ID:
         if (value == null) {
-          unsetPerssionType();
+          unsetPerssionTypeId();
         } else {
-          setPerssionType((org.apache.airavata.sharing.registry.models.PermissionType)value);
+          setPerssionTypeId((String)value);
         }
         break;
 
@@ -39535,8 +39525,8 @@ public class GovRegistryService {
       case GROUP_LIST:
         return getGroupList();
 
-      case PERSSION_TYPE:
-        return getPerssionType();
+      case PERSSION_TYPE_ID:
+        return getPerssionTypeId();
 
       }
       throw new IllegalStateException();
@@ -39553,8 +39543,8 @@ public class GovRegistryService {
         return isSetEntityId();
       case GROUP_LIST:
         return isSetGroupList();
-      case PERSSION_TYPE:
-        return isSetPerssionType();
+      case PERSSION_TYPE_ID:
+        return isSetPerssionTypeId();
       }
       throw new IllegalStateException();
     }
@@ -39590,12 +39580,12 @@ public class GovRegistryService {
           return false;
       }
 
-      boolean this_present_perssionType = true && this.isSetPerssionType();
-      boolean that_present_perssionType = true && that.isSetPerssionType();
-      if (this_present_perssionType || that_present_perssionType) {
-        if (!(this_present_perssionType && that_present_perssionType))
+      boolean this_present_perssionTypeId = true && this.isSetPerssionTypeId();
+      boolean that_present_perssionTypeId = true && that.isSetPerssionTypeId();
+      if (this_present_perssionTypeId || that_present_perssionTypeId) {
+        if (!(this_present_perssionTypeId && that_present_perssionTypeId))
           return false;
-        if (!this.perssionType.equals(that.perssionType))
+        if (!this.perssionTypeId.equals(that.perssionTypeId))
           return false;
       }
 
@@ -39616,10 +39606,10 @@ public class GovRegistryService {
       if (present_groupList)
         list.add(groupList);
 
-      boolean present_perssionType = true && (isSetPerssionType());
-      list.add(present_perssionType);
-      if (present_perssionType)
-        list.add(perssionType);
+      boolean present_perssionTypeId = true && (isSetPerssionTypeId());
+      list.add(present_perssionTypeId);
+      if (present_perssionTypeId)
+        list.add(perssionTypeId);
 
       return list.hashCode();
     }
@@ -39652,12 +39642,12 @@ public class GovRegistryService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetPerssionType()).compareTo(other.isSetPerssionType());
+      lastComparison = Boolean.valueOf(isSetPerssionTypeId()).compareTo(other.isSetPerssionTypeId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetPerssionType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionType, other.perssionType);
+      if (isSetPerssionTypeId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionTypeId, other.perssionTypeId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -39698,11 +39688,11 @@ public class GovRegistryService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("perssionType:");
-      if (this.perssionType == null) {
+      sb.append("perssionTypeId:");
+      if (this.perssionTypeId == null) {
         sb.append("null");
       } else {
-        sb.append(this.perssionType);
+        sb.append(this.perssionTypeId);
       }
       first = false;
       sb.append(")");
@@ -39717,13 +39707,10 @@ public class GovRegistryService {
       if (groupList == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupList' was not present! Struct: " + toString());
       }
-      if (perssionType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionType' was not present! Struct: " + toString());
+      if (perssionTypeId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionTypeId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (perssionType != null) {
-        perssionType.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -39786,11 +39773,10 @@ public class GovRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // PERSSION_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-                struct.perssionType.read(iprot);
-                struct.setPerssionTypeIsSet(true);
+            case 3: // PERSSION_TYPE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.perssionTypeId = iprot.readString();
+                struct.setPerssionTypeIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -39827,9 +39813,9 @@ public class GovRegistryService {
           }
           oprot.writeFieldEnd();
         }
-        if (struct.perssionType != null) {
-          oprot.writeFieldBegin(PERSSION_TYPE_FIELD_DESC);
-          struct.perssionType.write(oprot);
+        if (struct.perssionTypeId != null) {
+          oprot.writeFieldBegin(PERSSION_TYPE_ID_FIELD_DESC);
+          oprot.writeString(struct.perssionTypeId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -39857,7 +39843,7 @@ public class GovRegistryService {
             oprot.writeString(_iter104);
           }
         }
-        struct.perssionType.write(oprot);
+        oprot.writeString(struct.perssionTypeId);
       }
 
       @Override
@@ -39876,9 +39862,8 @@ public class GovRegistryService {
           }
         }
         struct.setGroupListIsSet(true);
-        struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-        struct.perssionType.read(iprot);
-        struct.setPerssionTypeIsSet(true);
+        struct.perssionTypeId = iprot.readString();
+        struct.setPerssionTypeIdIsSet(true);
       }
     }
 
@@ -40357,7 +40342,7 @@ public class GovRegistryService {
 
     private static final org.apache.thrift.protocol.TField ENTITY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("entityId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField GROUP_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("groupList", org.apache.thrift.protocol.TType.LIST, (short)2);
-    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionType", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField PERSSION_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("perssionTypeId", org.apache.thrift.protocol.TType.STRING, (short)3);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -40367,13 +40352,13 @@ public class GovRegistryService {
 
     public String entityId; // required
     public List<String> groupList; // required
-    public org.apache.airavata.sharing.registry.models.PermissionType perssionType; // required
+    public String perssionTypeId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
       ENTITY_ID((short)1, "entityId"),
       GROUP_LIST((short)2, "groupList"),
-      PERSSION_TYPE((short)3, "perssionType");
+      PERSSION_TYPE_ID((short)3, "perssionTypeId");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -40392,8 +40377,8 @@ public class GovRegistryService {
             return ENTITY_ID;
           case 2: // GROUP_LIST
             return GROUP_LIST;
-          case 3: // PERSSION_TYPE
-            return PERSSION_TYPE;
+          case 3: // PERSSION_TYPE_ID
+            return PERSSION_TYPE_ID;
           default:
             return null;
         }
@@ -40442,8 +40427,8 @@ public class GovRegistryService {
       tmpMap.put(_Fields.GROUP_LIST, new org.apache.thrift.meta_data.FieldMetaData("groupList", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-      tmpMap.put(_Fields.PERSSION_TYPE, new org.apache.thrift.meta_data.FieldMetaData("perssionType", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.sharing.registry.models.PermissionType.class)));
+      tmpMap.put(_Fields.PERSSION_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("perssionTypeId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(revokeEntitySharingFromGroups_args.class, metaDataMap);
     }
@@ -40454,12 +40439,12 @@ public class GovRegistryService {
     public revokeEntitySharingFromGroups_args(
       String entityId,
       List<String> groupList,
-      org.apache.airavata.sharing.registry.models.PermissionType perssionType)
+      String perssionTypeId)
     {
       this();
       this.entityId = entityId;
       this.groupList = groupList;
-      this.perssionType = perssionType;
+      this.perssionTypeId = perssionTypeId;
     }
 
     /**
@@ -40473,8 +40458,8 @@ public class GovRegistryService {
         List<String> __this__groupList = new ArrayList<String>(other.groupList);
         this.groupList = __this__groupList;
       }
-      if (other.isSetPerssionType()) {
-        this.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType(other.perssionType);
+      if (other.isSetPerssionTypeId()) {
+        this.perssionTypeId = other.perssionTypeId;
       }
     }
 
@@ -40486,7 +40471,7 @@ public class GovRegistryService {
     public void clear() {
       this.entityId = null;
       this.groupList = null;
-      this.perssionType = null;
+      this.perssionTypeId = null;
     }
 
     public String getEntityId() {
@@ -40552,27 +40537,27 @@ public class GovRegistryService {
       }
     }
 
-    public org.apache.airavata.sharing.registry.models.PermissionType getPerssionType() {
-      return this.perssionType;
+    public String getPerssionTypeId() {
+      return this.perssionTypeId;
     }
 
-    public revokeEntitySharingFromGroups_args setPerssionType(org.apache.airavata.sharing.registry.models.PermissionType perssionType) {
-      this.perssionType = perssionType;
+    public revokeEntitySharingFromGroups_args setPerssionTypeId(String perssionTypeId) {
+      this.perssionTypeId = perssionTypeId;
       return this;
     }
 
-    public void unsetPerssionType() {
-      this.perssionType = null;
+    public void unsetPerssionTypeId() {
+      this.perssionTypeId = null;
     }
 
-    /** Returns true if field perssionType is set (has been assigned a value) and false otherwise */
-    public boolean isSetPerssionType() {
-      return this.perssionType != null;
+    /** Returns true if field perssionTypeId is set (has been assigned a value) and false otherwise */
+    public boolean isSetPerssionTypeId() {
+      return this.perssionTypeId != null;
     }
 
-    public void setPerssionTypeIsSet(boolean value) {
+    public void setPerssionTypeIdIsSet(boolean value) {
       if (!value) {
-        this.perssionType = null;
+        this.perssionTypeId = null;
       }
     }
 
@@ -40594,11 +40579,11 @@ public class GovRegistryService {
         }
         break;
 
-      case PERSSION_TYPE:
+      case PERSSION_TYPE_ID:
         if (value == null) {
-          unsetPerssionType();
+          unsetPerssionTypeId();
         } else {
-          setPerssionType((org.apache.airavata.sharing.registry.models.PermissionType)value);
+          setPerssionTypeId((String)value);
         }
         break;
 
@@ -40613,8 +40598,8 @@ public class GovRegistryService {
       case GROUP_LIST:
         return getGroupList();
 
-      case PERSSION_TYPE:
-        return getPerssionType();
+      case PERSSION_TYPE_ID:
+        return getPerssionTypeId();
 
       }
       throw new IllegalStateException();
@@ -40631,8 +40616,8 @@ public class GovRegistryService {
         return isSetEntityId();
       case GROUP_LIST:
         return isSetGroupList();
-      case PERSSION_TYPE:
-        return isSetPerssionType();
+      case PERSSION_TYPE_ID:
+        return isSetPerssionTypeId();
       }
       throw new IllegalStateException();
     }
@@ -40668,12 +40653,12 @@ public class GovRegistryService {
           return false;
       }
 
-      boolean this_present_perssionType = true && this.isSetPerssionType();
-      boolean that_present_perssionType = true && that.isSetPerssionType();
-      if (this_present_perssionType || that_present_perssionType) {
-        if (!(this_present_perssionType && that_present_perssionType))
+      boolean this_present_perssionTypeId = true && this.isSetPerssionTypeId();
+      boolean that_present_perssionTypeId = true && that.isSetPerssionTypeId();
+      if (this_present_perssionTypeId || that_present_perssionTypeId) {
+        if (!(this_present_perssionTypeId && that_present_perssionTypeId))
           return false;
-        if (!this.perssionType.equals(that.perssionType))
+        if (!this.perssionTypeId.equals(that.perssionTypeId))
           return false;
       }
 
@@ -40694,10 +40679,10 @@ public class GovRegistryService {
       if (present_groupList)
         list.add(groupList);
 
-      boolean present_perssionType = true && (isSetPerssionType());
-      list.add(present_perssionType);
-      if (present_perssionType)
-        list.add(perssionType);
+      boolean present_perssionTypeId = true && (isSetPerssionTypeId());
+      list.add(present_perssionTypeId);
+      if (present_perssionTypeId)
+        list.add(perssionTypeId);
 
       return list.hashCode();
     }
@@ -40730,12 +40715,12 @@ public class GovRegistryService {
           return lastComparison;
         }
       }
-      lastComparison = Boolean.valueOf(isSetPerssionType()).compareTo(other.isSetPerssionType());
+      lastComparison = Boolean.valueOf(isSetPerssionTypeId()).compareTo(other.isSetPerssionTypeId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetPerssionType()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionType, other.perssionType);
+      if (isSetPerssionTypeId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.perssionTypeId, other.perssionTypeId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -40776,11 +40761,11 @@ public class GovRegistryService {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("perssionType:");
-      if (this.perssionType == null) {
+      sb.append("perssionTypeId:");
+      if (this.perssionTypeId == null) {
         sb.append("null");
       } else {
-        sb.append(this.perssionType);
+        sb.append(this.perssionTypeId);
       }
       first = false;
       sb.append(")");
@@ -40795,13 +40780,10 @@ public class GovRegistryService {
       if (groupList == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'groupList' was not present! Struct: " + toString());
       }
-      if (perssionType == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionType' was not present! Struct: " + toString());
+      if (perssionTypeId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'perssionTypeId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
-      if (perssionType != null) {
-        perssionType.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -40864,11 +40846,10 @@ public class GovRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // PERSSION_TYPE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-                struct.perssionType.read(iprot);
-                struct.setPerssionTypeIsSet(true);
+            case 3: // PERSSION_TYPE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.perssionTypeId = iprot.readString();
+                struct.setPerssionTypeIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -40905,9 +40886,9 @@ public class GovRegistryService {
           }
           oprot.writeFieldEnd();
         }
-        if (struct.perssionType != null) {
-          oprot.writeFieldBegin(PERSSION_TYPE_FIELD_DESC);
-          struct.perssionType.write(oprot);
+        if (struct.perssionTypeId != null) {
+          oprot.writeFieldBegin(PERSSION_TYPE_ID_FIELD_DESC);
+          oprot.writeString(struct.perssionTypeId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -40935,7 +40916,7 @@ public class GovRegistryService {
             oprot.writeString(_iter112);
           }
         }
-        struct.perssionType.write(oprot);
+        oprot.writeString(struct.perssionTypeId);
       }
 
       @Override
@@ -40954,9 +40935,8 @@ public class GovRegistryService {
           }
         }
         struct.setGroupListIsSet(true);
-        struct.perssionType = new org.apache.airavata.sharing.registry.models.PermissionType();
-        struct.perssionType.read(iprot);
-        struct.setPerssionTypeIsSet(true);
+        struct.perssionTypeId = iprot.readString();
+        struct.setPerssionTypeIdIsSet(true);
       }
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/thrift_models/sharing_cpi.thrift
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/thrift_models/sharing_cpi.thrift b/modules/airavata-sharing-registry/thrift_models/sharing_cpi.thrift
index 48c87fb..0273184 100644
--- a/modules/airavata-sharing-registry/thrift_models/sharing_cpi.thrift
+++ b/modules/airavata-sharing-registry/thrift_models/sharing_cpi.thrift
@@ -88,8 +88,8 @@ service GovRegistryService {
     /**
      * Sharing Entity with Users and Groups
     **/
-    bool shareEntityWithUsers(1: required string entityId, 2: required list<string> userList, 3: required sharing_models.PermissionType perssionType) throws (1: sharing_models.GovRegistryException gre)
-    bool revokeEntitySharingFromUsers(1: required string entityId, 2: required list<string> userList, 3: required sharing_models.PermissionType perssionType) throws (1: sharing_models.GovRegistryException gre)
-    bool shareEntityWithGroups(1: required string entityId, 2: required list<string> groupList, 3: required sharing_models.PermissionType perssionType) throws (1: sharing_models.GovRegistryException gre)
-    bool revokeEntitySharingFromGroups(1: required string entityId, 2: required list<string> groupList, 3: required sharing_models.PermissionType perssionType) throws (1: sharing_models.GovRegistryException gre)
+    bool shareEntityWithUsers(1: required string entityId, 2: required list<string> userList, 3: required string perssionTypeId) throws (1: sharing_models.GovRegistryException gre)
+    bool revokeEntitySharingFromUsers(1: required string entityId, 2: required list<string> userList, 3: required string perssionTypeId) throws (1: sharing_models.GovRegistryException gre)
+    bool shareEntityWithGroups(1: required string entityId, 2: required list<string> groupList, 3: required string perssionTypeId) throws (1: sharing_models.GovRegistryException gre)
+    bool revokeEntitySharingFromGroups(1: required string entityId, 2: required list<string> groupList, 3: required string perssionTypeId) throws (1: sharing_models.GovRegistryException gre)
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/thrift_models/sharing_models.thrift
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/thrift_models/sharing_models.thrift b/modules/airavata-sharing-registry/thrift_models/sharing_models.thrift
index ce74a89..8c40ae2 100644
--- a/modules/airavata-sharing-registry/thrift_models/sharing_models.thrift
+++ b/modules/airavata-sharing-registry/thrift_models/sharing_models.thrift
@@ -113,7 +113,7 @@ struct Sharing {
     3: optional string groupId,
     4: optional GroupType groupType,
     5: optional SharingType sharingType,
-    6: optional string inheritedPermissionTypeId,
+    6: optional string inheritedParentId,
     7: optional i64 createdTime,
     8: optional i64 updatedTime
 }


[2/2] airavata git commit: implementing sharing and revoking

Posted by sc...@apache.org.
implementing sharing and revoking


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/244e8416
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/244e8416
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/244e8416

Branch: refs/heads/airavata-gov-registry
Commit: 244e8416ede08785ec1be3c71240883622c314d7
Parents: a99f766
Author: scnakandala <su...@gmail.com>
Authored: Tue Oct 4 15:41:57 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Tue Oct 4 15:41:57 2016 -0400

----------------------------------------------------------------------
 .../registry/db/entities/EntityEntity.java      |  22 -
 .../registry/db/entities/EntityTypeEntity.java  |  11 -
 .../db/entities/PermissionTypeEntity.java       |  11 -
 .../registry/db/entities/SharingEntity.java     |  34 +-
 .../registry/db/entities/UserEntity.java        |  11 -
 .../registry/db/entities/UserGroupEntity.java   |  22 -
 .../db/repositories/EntityRepository.java       |  11 +
 .../db/repositories/SharingRepository.java      |  24 +-
 .../sharing/registry/db/utils/DBConstants.java  |  13 +
 .../server/GovRegistryServerHandler.java        | 160 +++--
 .../src/main/resources/gov-registry.sql         |   4 +-
 .../registry/GovRegistryServerHandlerTest.java  |  45 +-
 .../sharing/registry/db/RepositoriesTest.java   | 355 -----------
 .../sharing/registry/models/Domain.java         |   2 +-
 .../sharing/registry/models/Entity.java         |   2 +-
 .../sharing/registry/models/EntityType.java     |   2 +-
 .../registry/models/GovRegistryException.java   |   2 +-
 .../registry/models/GroupMembership.java        |   2 +-
 .../sharing/registry/models/PermissionType.java |   2 +-
 .../sharing/registry/models/Sharing.java        | 139 +++--
 .../airavata/sharing/registry/models/User.java  |   2 +-
 .../sharing/registry/models/UserGroup.java      |   2 +-
 .../service/cpi/GovRegistryService.java         | 592 +++++++++----------
 .../thrift_models/sharing_cpi.thrift            |   8 +-
 .../thrift_models/sharing_models.thrift         |   2 +-
 25 files changed, 598 insertions(+), 882 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityEntity.java
index 2658caa..de8abf4 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityEntity.java
@@ -41,8 +41,6 @@ public class EntityEntity {
     private String fullText;
     private Long createdTime;
     private Long updatedTime;
-    private DomainEntity domainByDomainId;
-    private EntityEntity entityByParentEntityId;
 
     @Id
     @Column(name = "ENTITY_ID")
@@ -191,24 +189,4 @@ public class EntityEntity {
         result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID")
-    public DomainEntity getDomainByDomainId() {
-        return domainByDomainId;
-    }
-
-    public void setDomainByDomainId(DomainEntity domainByDomainId) {
-        this.domainByDomainId = domainByDomainId;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "PARENT_ENTITY_ID", referencedColumnName = "ENTITY_ID")
-    public EntityEntity getEntityByParentEntityId() {
-        return entityByParentEntityId;
-    }
-
-    public void setEntityByParentEntityId(EntityEntity entityByParentEntityId) {
-        this.entityByParentEntityId = entityByParentEntityId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityTypeEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityTypeEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityTypeEntity.java
index 371ad77..0b789ed 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityTypeEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/EntityTypeEntity.java
@@ -35,7 +35,6 @@ public class EntityTypeEntity {
     private String description;
     private Long createdTime;
     private Long updatedTime;
-    private DomainEntity domainByDomainId;
 
     @Id
     @Column(name = "ENTITY_TYPE_ID")
@@ -123,14 +122,4 @@ public class EntityTypeEntity {
         result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID")
-    public DomainEntity getDomainByDomainId() {
-        return domainByDomainId;
-    }
-
-    public void setDomainByDomainId(DomainEntity domainByDomainId) {
-        this.domainByDomainId = domainByDomainId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/PermissionTypeEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/PermissionTypeEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/PermissionTypeEntity.java
index 898093a..c145cbe 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/PermissionTypeEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/PermissionTypeEntity.java
@@ -35,7 +35,6 @@ public class PermissionTypeEntity {
     private String description;
     private Long createdTime;
     private Long updatedTime;
-    private DomainEntity domainByDomainId;
 
     @Id
     @Column(name = "PERMISSION_TYPE_ID")
@@ -123,14 +122,4 @@ public class PermissionTypeEntity {
         result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID")
-    public DomainEntity getDomainByDomainId() {
-        return domainByDomainId;
-    }
-
-    public void setDomainByDomainId(DomainEntity domainByDomainId) {
-        this.domainByDomainId = domainByDomainId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/SharingEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/SharingEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/SharingEntity.java
index 500d622..077d7cf 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/SharingEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/SharingEntity.java
@@ -35,11 +35,9 @@ public class SharingEntity {
     private String groupId;
     private String groupType;
     private String sharingType;
-    private String inheritedPermissionTypeId;
+    private String inheritedParentId;
     private Long createdTime;
     private Long updatedTime;
-    private PermissionTypeEntity permissionTypeByPermissionTypeId;
-    private EntityTypeEntity entityTypeByEntityTypeId;
 
     @Id
     @Column(name = "PERMISSION_TYPE_ID")
@@ -92,13 +90,13 @@ public class SharingEntity {
     }
 
     @Basic
-    @Column(name = "INHERITED_PARENT_PERMISSION_ID")
-    public String getInheritedPermissionTypeId() {
-        return inheritedPermissionTypeId;
+    @Column(name = "INHERITED_PARENT_ID")
+    public String getInheritedParentId() {
+        return inheritedParentId;
     }
 
-    public void setInheritedPermissionTypeId(String inheritedPermissionTypeId) {
-        this.inheritedPermissionTypeId = inheritedPermissionTypeId;
+    public void setInheritedParentId(String inheritedParentId) {
+        this.inheritedParentId = inheritedParentId;
     }
 
     @Basic
@@ -145,24 +143,4 @@ public class SharingEntity {
         result = 31 * result + (groupId != null ? groupId.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "PERMISSION_TYPE_ID", referencedColumnName = "PERMISSION_TYPE_ID", nullable = false)
-    public PermissionTypeEntity getPermissionTypeByPermissionTypeId() {
-        return permissionTypeByPermissionTypeId;
-    }
-
-    public void setPermissionTypeByPermissionTypeId(PermissionTypeEntity permissionTypeByPermissionTypeId) {
-        this.permissionTypeByPermissionTypeId = permissionTypeByPermissionTypeId;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "ENTITY_TYPE_ID", referencedColumnName = "ENTITY_TYPE_ID")
-    public EntityTypeEntity getEntityTypeByEntityTypeId() {
-        return entityTypeByEntityTypeId;
-    }
-
-    public void setEntityTypeByEntityTypeId(EntityTypeEntity entityTypeByEntityTypeId) {
-        this.entityTypeByEntityTypeId = entityTypeByEntityTypeId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserEntity.java
index ed88230..256d2e7 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserEntity.java
@@ -34,7 +34,6 @@ public class UserEntity {
     private String userName;
     private Long createdTime;
     private Long updatedTime;
-    private DomainEntity domainByDomainId;
 
     @Id
     @Column(name = "USER_ID")
@@ -110,14 +109,4 @@ public class UserEntity {
         result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID")
-    public DomainEntity getDomainByDomainId() {
-        return domainByDomainId;
-    }
-
-    public void setDomainByDomainId(DomainEntity domainByDomainId) {
-        this.domainByDomainId = domainByDomainId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserGroupEntity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserGroupEntity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserGroupEntity.java
index 3ccd0c9..10d901a 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserGroupEntity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/entities/UserGroupEntity.java
@@ -37,8 +37,6 @@ public class UserGroupEntity {
     private String groupType;
     private Long createdTime;
     private Long updatedTime;
-    private DomainEntity domainByDomainId;
-    private UserEntity userByOwnerId;
 
     @Id
     @Column(name = "GROUP_ID")
@@ -149,24 +147,4 @@ public class UserGroupEntity {
         result = 31 * result + (updatedTime != null ? updatedTime.hashCode() : 0);
         return result;
     }
-
-    @ManyToOne
-    @JoinColumn(name = "DOMAIN_ID", referencedColumnName = "DOMAIN_ID")
-    public DomainEntity getDomainByDomainId() {
-        return domainByDomainId;
-    }
-
-    public void setDomainByDomainId(DomainEntity domainByDomainId) {
-        this.domainByDomainId = domainByDomainId;
-    }
-
-    @ManyToOne
-    @JoinColumn(name = "OWNER_ID", referencedColumnName = "USER_ID")
-    public UserEntity getUserByOwnerId() {
-        return userByOwnerId;
-    }
-
-    public void setUserByOwnerId(UserEntity userByOwnerId) {
-        this.userByOwnerId = userByOwnerId;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
index 353b006..86708c3 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/EntityRepository.java
@@ -21,14 +21,25 @@
 package org.apache.airavata.sharing.registry.db.repositories;
 
 import org.apache.airavata.sharing.registry.db.entities.EntityEntity;
+import org.apache.airavata.sharing.registry.db.utils.DBConstants;
 import org.apache.airavata.sharing.registry.models.Entity;
+import org.apache.airavata.sharing.registry.models.GovRegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashMap;
+import java.util.List;
+
 public class EntityRepository extends AbstractRepository<Entity, EntityEntity, String> {
     private final static Logger logger = LoggerFactory.getLogger(EntityRepository.class);
 
     public EntityRepository() {
         super(Entity.class, EntityEntity.class);
     }
+
+    public List<Entity> getChildEntities(String parentId) throws GovRegistryException {
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.EntityTable.PARENT_ENTITY_ID, parentId);
+        return select(filters, 0, -1);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/SharingRepository.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/SharingRepository.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/SharingRepository.java
index 1c45c31..f1ad871 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/SharingRepository.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/repositories/SharingRepository.java
@@ -21,14 +21,36 @@
 package org.apache.airavata.sharing.registry.db.repositories;
 
 import org.apache.airavata.sharing.registry.db.entities.SharingEntity;
+import org.apache.airavata.sharing.registry.db.entities.SharingEntityPK;
+import org.apache.airavata.sharing.registry.db.utils.DBConstants;
+import org.apache.airavata.sharing.registry.models.GovRegistryException;
 import org.apache.airavata.sharing.registry.models.Sharing;
+import org.apache.airavata.sharing.registry.models.SharingType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class SharingRepository extends AbstractRepository<Sharing, SharingEntity, String> {
+import java.util.HashMap;
+import java.util.List;
+
+public class SharingRepository extends AbstractRepository<Sharing, SharingEntity, SharingEntityPK> {
     private final static Logger logger = LoggerFactory.getLogger(SharingRepository.class);
 
     public SharingRepository() {
         super(Sharing.class, SharingEntity.class);
     }
+
+    public List<Sharing> getIndirectSharedChildren(String parentId, String permissionTypeId) throws GovRegistryException {
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.SharingTable.INHERITED_PARENT_ID, parentId);
+        filters.put(DBConstants.SharingTable.SHARING_TYPE, SharingType.INHERITED.toString());
+        filters.put(DBConstants.SharingTable.PERMISSION_TYPE_ID, permissionTypeId);
+
+        return select(filters, 0, -1);
+    }
+
+    public List<Sharing> getPermissionsForEntity(String entityId) throws GovRegistryException {
+        HashMap<String, String> filters = new HashMap<>();
+        filters.put(DBConstants.SharingTable.ENTITY_ID, entityId);
+        return select(filters, 0, -1);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
index f647216..c8c10b6 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/db/utils/DBConstants.java
@@ -64,4 +64,17 @@ public class DBConstants {
         public static String ENTITY_TYPE_ID = "permissionTypeId";
         public static String DOMAIN_ID = "domainId";
     }
+
+    public static class EntityTable {
+        public static String ENTITY_ID = "entityId";
+        public static String PARENT_ENTITY_ID = "parentEntityId";
+    }
+
+    public static class SharingTable {
+        public static String PERMISSION_TYPE_ID = "permissionTypeId";
+        public static String ENTITY_ID = "entityId";
+        public static String GROUP_ID = "groupId";
+        public static String INHERITED_PARENT_ID = "inheritedParentId";
+        public static final String SHARING_TYPE = "sharingType";
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
index 58b961a..41d9f29 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/java/org/apache/airavata/sharing/registry/server/GovRegistryServerHandler.java
@@ -21,6 +21,7 @@
 package org.apache.airavata.sharing.registry.server;
 
 import org.apache.airavata.sharing.registry.db.entities.GroupMembershipEntityPK;
+import org.apache.airavata.sharing.registry.db.entities.SharingEntityPK;
 import org.apache.airavata.sharing.registry.db.repositories.*;
 import org.apache.airavata.sharing.registry.db.utils.DBConstants;
 import org.apache.airavata.sharing.registry.models.*;
@@ -30,10 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Field;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class GovRegistryServerHandler implements GovRegistryService.Iface{
     private final static Logger logger = LoggerFactory.getLogger(GovRegistryServerHandler.class);
@@ -45,6 +43,7 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
     private EntityTypeRepository entityTypeRepository;
     private PermissionTypeRepository permissionTypeRepository;
     private EntityRepository entityRepository;
+    private SharingRepository sharingRepository;
 
     public GovRegistryServerHandler(){
         this.domainRepository = new DomainRepository();
@@ -54,6 +53,7 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
         this.entityTypeRepository = new EntityTypeRepository();
         this.permissionTypeRepository = new PermissionTypeRepository();
         this.entityRepository = new EntityRepository();
+        this.sharingRepository = new SharingRepository();
     }
 
     /**
@@ -62,7 +62,6 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createDomain(Domain domain) throws GovRegistryException, TException {
-        domain.setDomainId(domain.name);
         domain.setCreatedTime(System.currentTimeMillis());
         domain.setUpdatedTime(System.currentTimeMillis());
         domainRepository.create(domain);
@@ -101,7 +100,6 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createUser(User user) throws GovRegistryException, TException {
-        user.setUserId(user.domainId + ":" + user.userName);
         user.setCreatedTime(System.currentTimeMillis());
         user.setUpdatedTime(System.currentTimeMillis());
         userRepository.create(user);
@@ -158,7 +156,6 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createGroup(UserGroup group) throws GovRegistryException, TException {
-        group.setGroupId(group.domainId+":"+group.name);
         group.setCreatedTime(System.currentTimeMillis());
         group.setUpdatedTime(System.currentTimeMillis());
         userGroupRepository.create(group);
@@ -256,7 +253,6 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createEntityType(EntityType entityType) throws GovRegistryException, TException {
-        entityType.setEntityTypeId(entityType.domainId + ":" + entityType.name);
         entityType.setCreatedTime(System.currentTimeMillis());
         entityType.setUpdatedTime(System.currentTimeMillis());
         entityTypeRepository.create(entityType);
@@ -297,7 +293,6 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createPermissionType(PermissionType permissionType) throws GovRegistryException, TException {
-        permissionType.setPermissionTypeId(permissionType.domainId+":"+permissionType.name);
         permissionType.setCreatedTime(System.currentTimeMillis());
         permissionType.setUpdatedTime(System.currentTimeMillis());
         permissionTypeRepository.create(permissionType);
@@ -337,15 +332,33 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
      */
     @Override
     public String createEntity(Entity entity) throws GovRegistryException, TException {
-        entity.setEntityId(entity.domainId + ":" + entity.name);
         entity.setCreatedTime(System.currentTimeMillis());
         entity.setUpdatedTime(System.currentTimeMillis());
         entityRepository.create(entity);
+
+        //creating records for inherited permissions
+        if(entity.getParentEntityId() != null && entity.getParentEntityId() != ""){
+            List<Sharing> sharings = sharingRepository.getPermissionsForEntity(entity.parentEntityId);
+            for(Sharing sharing : sharings){
+                Sharing newSharing = new Sharing();
+                newSharing.setPermissionTypeId(sharing.permissionTypeId);
+                newSharing.setEntityId(entity.entityId);
+                newSharing.setGroupId(sharing.groupId);
+                newSharing.setGroupType(sharing.groupType);
+                newSharing.setSharingType(SharingType.INHERITED);
+                newSharing.setCreatedTime(System.currentTimeMillis());
+                newSharing.setUpdatedTime(System.currentTimeMillis());
+
+                sharingRepository.create(newSharing);
+            }
+        }
+
         return entity.entityId;
     }
 
     @Override
     public boolean updateEntity(Entity entity) throws GovRegistryException, TException {
+        //TODO Check for permission changes
         entity.setUpdatedTime(System.currentTimeMillis());
         Entity oldEntity = entityRepository.get(entity.getEntityId());
         entity.setCreatedTime(oldEntity.createdTime);
@@ -356,6 +369,7 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
 
     @Override
     public boolean deleteEntity(String entityId) throws GovRegistryException, TException {
+        //TODO Check for permission changes
         entityRepository.delete(entityId);
         return true;
     }
@@ -370,6 +384,104 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
         return null;
     }
 
+    /**
+     * * Sharing Entity with Users and Groups
+     * *
+     *
+     * @param entityId
+     * @param userList
+     * @param permissionType
+     */
+    @Override
+    public boolean shareEntityWithUsers(String entityId, List<String> userList, String permissionTypeId) throws GovRegistryException, TException {
+        return shareEntity(entityId, userList, permissionTypeId, GroupType.SINGLE_USER);
+    }
+
+    @Override
+    public boolean shareEntityWithGroups(String entityId, List<String> groupList, String permissionTypeId) throws GovRegistryException, TException {
+        return shareEntity(entityId, groupList, permissionTypeId, GroupType.MULTI_USER);
+    }
+
+    private boolean shareEntity(String entityId, List<String> groupOrUserList, String permissionTypeId, GroupType groupType)  throws GovRegistryException, TException {
+        //Adding permission for the specified users/groups for the specified entity
+        LinkedList<Entity> temp = new LinkedList<>();
+        for(String userId : groupOrUserList){
+            Sharing sharing = new Sharing();
+            sharing.setPermissionTypeId(permissionTypeId);
+            sharing.setEntityId(entityId);
+            sharing.setGroupId(userId);
+            sharing.setGroupType(groupType);
+            sharing.setSharingType(SharingType.DIRECT);
+            sharing.setCreatedTime(System.currentTimeMillis());
+            sharing.setUpdatedTime(System.currentTimeMillis());
+
+            sharingRepository.create(sharing);
+        }
+
+        //Adding permission for the specified users/groups for all child entities
+        entityRepository.getChildEntities(entityId).stream().forEach(e-> temp.addLast(e));
+        while(temp.size() > 0){
+            Entity entity = temp.pop();
+            String childEntityId = entity.entityId;
+            String parentEntityId = entity.parentEntityId;
+            for(String userId : groupOrUserList){
+                Sharing sharing = new Sharing();
+                sharing.setPermissionTypeId(permissionTypeId);
+                sharing.setEntityId(childEntityId);
+                sharing.setGroupId(userId);
+                sharing.setGroupType(groupType);
+                sharing.setSharingType(SharingType.INHERITED);
+                sharing.setInheritedParentId(parentEntityId);
+                sharing.setCreatedTime(System.currentTimeMillis());
+                sharing.setUpdatedTime(System.currentTimeMillis());
+                sharingRepository.create(sharing);
+                entityRepository.getChildEntities(childEntityId).stream().forEach(e-> temp.addLast(e));
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, String permissionTypeId) throws GovRegistryException, TException {
+        return revokeEntitySharing(entityId, userList, permissionTypeId);
+    }
+
+
+    @Override
+    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, String permissionTypeId) throws GovRegistryException, TException {
+        return revokeEntitySharing(entityId, groupList, permissionTypeId);
+    }
+
+    public boolean revokeEntitySharing(String entityId, List<String> groupOrUserList, String permissionTypeId) throws GovRegistryException {
+        //revoking permission for the entity
+        LinkedList<Sharing> temp = new LinkedList<>();
+        sharingRepository.getIndirectSharedChildren(entityId, permissionTypeId).stream().forEach(s->temp.addLast(s));
+        for(String groupId : groupOrUserList){
+            SharingEntityPK sharingEntityPK = new SharingEntityPK();
+            sharingEntityPK.setEntityId(entityId);
+            sharingEntityPK.setGroupId(groupId);
+            sharingEntityPK.setPermissionTypeId(permissionTypeId);
+
+            sharingRepository.delete(sharingEntityPK);
+        }
+
+        //revoking permission from inheritance
+        while(temp.size() > 0){
+            Sharing sharing = temp.pop();
+            String childEntityId = sharing.entityId;
+            sharingRepository.getIndirectSharedChildren(sharing.entityId, permissionTypeId).stream().forEach(s->temp.addLast(s));
+            for(String groupId : groupOrUserList){
+                SharingEntityPK sharingEntityPK = new SharingEntityPK();
+                sharingEntityPK.setEntityId(childEntityId);
+                sharingEntityPK.setGroupId(groupId);
+                sharingEntityPK.setPermissionTypeId(permissionTypeId);
+
+                sharingRepository.delete(sharingEntityPK);
+            }
+        }
+        return true;
+    }
+
 
 
     private <T> T getUpdatedObject(T oldEntity, T newEntity) throws GovRegistryException {
@@ -413,32 +525,4 @@ public class GovRegistryServerHandler implements GovRegistryService.Iface{
         }
         return hashtable;
     }
-
-    /**
-     * * Sharing Entity with Users and Groups
-     * *
-     *
-     * @param entityId
-     * @param userList
-     * @param permissionType
-     */
-    @Override
-    public boolean shareEntityWithUsers(String entityId, List<String> userList, PermissionType perssionType) throws GovRegistryException, TException {
-        return false;
-    }
-
-    @Override
-    public boolean revokeEntitySharingFromUsers(String entityId, List<String> userList, PermissionType perssionType) throws GovRegistryException, TException {
-        return false;
-    }
-
-    @Override
-    public boolean shareEntityWithGroups(String entityId, List<String> groupList, PermissionType perssionType) throws GovRegistryException, TException {
-        return false;
-    }
-
-    @Override
-    public boolean revokeEntitySharingFromGroups(String entityId, List<String> groupList, PermissionType perssionType) throws GovRegistryException, TException {
-        return false;
-    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
index 6f698f0..617f6e8 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/main/resources/gov-registry.sql
@@ -118,12 +118,12 @@ CREATE TABLE SHARING (
   GROUP_ID VARCHAR(255) NOT NULL,
   GROUP_TYPE VARCHAR(255) NOT NULL,
   SHARING_TYPE VARCHAR(255) NOT NULL,
-  INHERITED_PARENT_PERMISSION_ID VARCHAR(255),
+  INHERITED_PARENT_ID VARCHAR(255),
   CREATED_TIME BIGINT NOT NULL,
   UPDATED_TIME BIGINT NOT NULL,
   PRIMARY KEY (PERMISSION_TYPE_ID, ENTITY_ID, GROUP_ID),
   FOREIGN KEY (PERMISSION_TYPE_ID) REFERENCES PERMISSION_TYPE(PERMISSION_TYPE_ID) ON DELETE CASCADE ON UPDATE CASCADE,
-  FOREIGN KEY (INHERITED_PARENT_PERMISSION_ID) REFERENCES SHARING(PERMISSION_TYPE_ID) ON DELETE CASCADE ON UPDATE CASCADE,
+  FOREIGN KEY (INHERITED_PARENT_ID) REFERENCES ENTITY(ENTITY_ID) ON DELETE CASCADE ON UPDATE CASCADE,
   FOREIGN KEY (GROUP_ID) REFERENCES USER_GROUP(GROUP_ID) ON DELETE CASCADE ON UPDATE CASCADE
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
index 49522bd..4792619 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/GovRegistryServerHandlerTest.java
@@ -128,6 +128,7 @@ public class GovRegistryServerHandlerTest {
         //Creating permission types
         PermissionType permissionType1 = new PermissionType();
         String permissionName1 = "READ";
+        permissionType1.setPermissionTypeId(domainId+":"+permissionName1);
         permissionType1.setDomainId(domainId);
         permissionType1.setName(permissionName1);
         permissionType1.setDescription("READ description");
@@ -138,6 +139,7 @@ public class GovRegistryServerHandlerTest {
 
         PermissionType permissionType2 = new PermissionType();
         String permissionName2 = "WRITE";
+        permissionType2.setPermissionTypeId(domainId+":"+permissionName2);
         permissionType2.setDomainId(domainId);
         permissionType2.setName(permissionName2);
         permissionType2.setDescription("WRITE description");
@@ -149,6 +151,7 @@ public class GovRegistryServerHandlerTest {
         //Creating entity types
         EntityType entityType1 = new EntityType();
         String entityType1Name = "Project";
+        entityType1.setEntityTypeId(domainId+":"+entityType1Name);
         entityType1.setDomainId(domainId);
         entityType1.setName(entityType1Name);
         entityType1.setDescription("test entity type");
@@ -159,6 +162,7 @@ public class GovRegistryServerHandlerTest {
 
         EntityType entityType2 = new EntityType();
         String entityType2Name = "Experiment";
+        entityType2.setEntityTypeId(domainId+":"+entityType2Name);
         entityType2.setDomainId(domainId);
         entityType2.setName(entityType2Name);
         entityType2.setDescription("test entity type");
@@ -167,12 +171,24 @@ public class GovRegistryServerHandlerTest {
         String entityTypeId2 = govRegistryServerHandler.createEntityType(entityType2);
         Assert.assertNotNull(entityTypeId2);
 
+        EntityType entityType3 = new EntityType();
+        String entityType3Name = "FileInput";
+        entityType3.setEntityTypeId(domainId+":"+entityType3Name);
+        entityType3.setDomainId(domainId);
+        entityType3.setName(entityType3Name);
+        entityType3.setDescription("file input type");
+        entityType3.setCreatedTime(System.currentTimeMillis());
+        entityType3.setUpdatedTime(System.currentTimeMillis());
+        String entityTypeId3 = govRegistryServerHandler.createEntityType(entityType3);
+        Assert.assertNotNull(entityTypeId3);
+
         //Creating Entities
         Entity entity1 = new Entity();
+        entity1.setEntityId(domainId+":Entity1");
         entity1.setDomainId(domainId);
         entity1.setEntityTypeId(entityTypeId1);
         entity1.setOwnerId(userId1);
-        entity1.setName("Project name");
+        entity1.setName("Project name 1");
         entity1.setDescription("Project description");
         Map<String, String> metadataMap = new HashMap<>();
         metadataMap.put("key", "val");
@@ -185,6 +201,7 @@ public class GovRegistryServerHandlerTest {
         Assert.assertNotNull(entityId1);
 
         Entity entity2 = new Entity();
+        entity2.setEntityId(domainId+":Entity2");
         entity2.setDomainId(domainId);
         entity2.setEntityTypeId(entityTypeId2);
         entity2.setOwnerId(userId1);
@@ -202,6 +219,7 @@ public class GovRegistryServerHandlerTest {
         Assert.assertNotNull(entityId2);
 
         Entity entity3 = new Entity();
+        entity3.setEntityId(domainId+":Entity3");
         entity3.setDomainId(domainId);
         entity3.setEntityTypeId(entityTypeId2);
         entity3.setOwnerId(userId1);
@@ -217,5 +235,30 @@ public class GovRegistryServerHandlerTest {
 
         String entityId3 = govRegistryServerHandler.createEntity(entity3);
         Assert.assertNotNull(entityId3);
+
+        govRegistryServerHandler.shareEntityWithUsers(entityId1, Arrays.asList(userId2), permissionTypeId1);
+        govRegistryServerHandler.shareEntityWithGroups(entityId3, Arrays.asList(groupId2), permissionTypeId1);
+
+        Entity entity4 = new Entity();
+        entity4.setEntityId(domainId+":Entity4");
+        entity4.setDomainId(domainId);
+        entity4.setEntityTypeId(entityTypeId3);
+        entity4.setOwnerId(userId1);
+        entity4.setName("Input name");
+        entity4.setDescription("Input file description");
+        entity4.setParentEntityId(entityId3);
+        metadataMap = new HashMap<>();
+        metadataMap.put("key", "val");
+        entity4.setMetadata(metadataMap);
+        entity4.setFullText("Input File");
+        entity4.setCreatedTime(System.currentTimeMillis());
+        entity4.setUpdatedTime(System.currentTimeMillis());
+
+        String entityId4 = govRegistryServerHandler.createEntity(entity4);
+        Assert.assertNotNull(entityId4);
+
+
+//        govRegistryServerHandler.revokeEntitySharingFromUsers(entityId1, Arrays.asList(userId2), permissionTypeId1);
+//        govRegistryServerHandler.revokeEntitySharingFromGroups(entityId3, Arrays.asList(groupId2), permissionTypeId1);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/db/RepositoriesTest.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/db/RepositoriesTest.java b/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/db/RepositoriesTest.java
deleted file mode 100644
index ed549fd..0000000
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-core/src/test/java/org/apache/airavata/sharing/registry/db/RepositoriesTest.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.sharing.registry.db;
-
-import junit.framework.Assert;
-import org.apache.airavata.sharing.registry.db.repositories.*;
-import org.apache.airavata.sharing.registry.db.utils.DBConstants;
-import org.apache.airavata.sharing.registry.models.*;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-public class RepositoriesTest {
-    private final static Logger logger = LoggerFactory.getLogger(RepositoriesTest.class);
-
-    @Test
-    public void test() throws GovRegistryException {
-
-        //Creating domain
-        Domain domain = new Domain();
-        String domainId = "test-domain."+System.currentTimeMillis();
-        domain.setDomainId(domainId);
-        domain.setName(domainId);
-        domain.setDescription("test domain description");
-        domain.setCreatedTime(System.currentTimeMillis());
-        domain.setUpdatedTime(System.currentTimeMillis());
-
-        DomainRepository domainRepository = new DomainRepository();
-        domain = domainRepository.create(domain);
-        Assert.assertNotNull(domain);
-
-        Map<String, String> filters = new HashMap<>();
-        filters.put(DBConstants.DomainTable.DESCRIPTION, "test");
-        Assert.assertTrue(domainRepository.select(filters, 0, 10).size() > 0);
-
-
-        //Creating users
-        User user1 = new User();
-        String userName1 = "test-user." + System.currentTimeMillis();
-        String userId1 = domainId + ":" + userName1;
-        user1.setUserId(userId1);
-        user1.setUserName(userName1);
-        user1.setDomainId(domainId);
-        user1.setCreatedTime(System.currentTimeMillis());
-        user1.setUpdatedTime(System.currentTimeMillis());
-
-        UserRepository userRepository = new UserRepository();
-        user1 = userRepository.create(user1);
-        Assert.assertNotNull(user1);
-
-        User user2 = new User();
-        String userName2 = "test-user." + System.currentTimeMillis();
-        String userId2 = domainId + ":" + userName2;
-        user2.setUserId(userId2);
-        user2.setUserName(userName2);
-        user2.setDomainId(domainId);
-        user2.setCreatedTime(System.currentTimeMillis());
-        user2.setUpdatedTime(System.currentTimeMillis());
-
-        userRepository.create(user2);
-
-        User user3 = new User();
-        String userName3 = "test-user." + System.currentTimeMillis();
-        String userId3 = domainId + ":" + userName3;
-        user3.setUserId(userId3);
-        user3.setUserName(userName3);
-        user3.setDomainId(domainId);
-        user3.setCreatedTime(System.currentTimeMillis());
-        user3.setUpdatedTime(System.currentTimeMillis());
-
-        userRepository.create(user3);
-
-        filters = new HashMap<>();
-        filters.put(DBConstants.UserTable.USER_NAME, "test");
-        Assert.assertTrue(userRepository.select(filters, 0, 10).size() > 0);
-
-        // Creating user groups
-        UserGroup userGroup1 = new UserGroup();
-        String groupName1 = "test-group";
-        String groupId1 = domainId + ":" + groupName1 + "." + System.currentTimeMillis();
-        userGroup1.setGroupId(groupId1);
-        userGroup1.setDomainId(domainId);
-        userGroup1.setName(groupName1);
-        userGroup1.setDescription("test group description");
-        userGroup1.setOwnerId(userId1);
-        userGroup1.setGroupType(GroupType.MULTI_USER);
-        userGroup1.setCreatedTime(System.currentTimeMillis());
-        userGroup1.setUpdatedTime(System.currentTimeMillis());
-
-        UserGroupRepository userGroupRepository = new UserGroupRepository();
-        userGroup1 = userGroupRepository.create(userGroup1);
-        Assert.assertNotNull(userGroup1);
-
-        UserGroup userGroup2 = new UserGroup();
-        String groupName2 = "test-group";
-        String groupId2 = domainId + ":" + groupName2 + "." + System.currentTimeMillis();
-        userGroup2.setGroupId(groupId2);
-        userGroup2.setDomainId(domainId);
-        userGroup2.setName(groupName2);
-        userGroup2.setDescription("test group description");
-        userGroup2.setOwnerId(userId2);
-        userGroup2.setGroupType(GroupType.MULTI_USER);
-        userGroup2.setCreatedTime(System.currentTimeMillis());
-        userGroup2.setUpdatedTime(System.currentTimeMillis());
-
-        userGroupRepository.create(userGroup2);
-
-        UserGroup userGroup3 = new UserGroup();
-        String groupName3 = "test-group";
-        String groupId3 = domainId + ":" + groupName3 + "." + System.currentTimeMillis();
-        userGroup3.setGroupId(groupId3);
-        userGroup3.setDomainId(domainId);
-        userGroup3.setName(groupName3);
-        userGroup3.setDescription("test group description");
-        userGroup3.setOwnerId(userId3);
-        userGroup3.setGroupType(GroupType.MULTI_USER);
-        userGroup3.setCreatedTime(System.currentTimeMillis());
-        userGroup3.setUpdatedTime(System.currentTimeMillis());
-
-        userGroupRepository.create(userGroup3);
-
-        //Creating Groups for users (This is an implementation level abstract)
-        UserGroup ug1 = new UserGroup();
-        String ug1Name = "user1-group-name";
-        String ug1GroupId = userId1;
-        ug1.setGroupId(ug1GroupId);
-        ug1.setDomainId(domainId);
-        ug1.setName(ug1Name);
-        ug1.setDescription("test group description");
-        ug1.setOwnerId(userId1);
-        ug1.setGroupType(GroupType.SINGLE_USER);
-        ug1.setCreatedTime(System.currentTimeMillis());
-        ug1.setUpdatedTime(System.currentTimeMillis());
-
-        userGroupRepository.create(ug1);
-
-        UserGroup ug2 = new UserGroup();
-        String ug2Name = "user2-group-name";
-        String ug2GroupId = userId2;
-        ug2.setGroupId(ug2GroupId);
-        ug2.setDomainId(domainId);
-        ug2.setName(ug2Name);
-        ug2.setDescription("test group description");
-        ug2.setOwnerId(userId1);
-        ug2.setGroupType(GroupType.SINGLE_USER);
-        ug2.setCreatedTime(System.currentTimeMillis());
-        ug2.setUpdatedTime(System.currentTimeMillis());
-
-        userGroupRepository.create(ug2);
-
-        UserGroup ug3 = new UserGroup();
-        String ug3Name = "user1-group-name";
-        String ug3GroupId = userId3;
-        ug3.setGroupId(ug3GroupId);
-        ug3.setDomainId(domainId);
-        ug3.setName(ug3Name);
-        ug3.setDescription("test group description");
-        ug3.setOwnerId(userId1);
-        ug3.setGroupType(GroupType.SINGLE_USER);
-        ug3.setCreatedTime(System.currentTimeMillis());
-        ug3.setUpdatedTime(System.currentTimeMillis());
-
-        userGroupRepository.create(ug3);
-
-        GroupMembership grpU2ToGrp2 = new GroupMembership();
-        grpU2ToGrp2.setParentId(groupId2);
-        grpU2ToGrp2.setChildId(userId2);
-        grpU2ToGrp2.setChildType(GroupChildType.USER);
-
-        GroupMembershipRepository groupMembershipRepository = new GroupMembershipRepository();
-        grpU2ToGrp2 = groupMembershipRepository.create(grpU2ToGrp2);
-        Assert.assertNotNull(grpU2ToGrp2);
-
-        GroupMembership grpU3ToGrp2 = new GroupMembership();
-        grpU3ToGrp2.setParentId(groupId2);
-        grpU3ToGrp2.setChildId(userId3);
-        grpU3ToGrp2.setChildType(GroupChildType.USER);
-
-        groupMembershipRepository.create(grpU3ToGrp2);
-
-        GroupMembership grpU1ToGrp1 = new GroupMembership();
-        grpU1ToGrp1.setParentId(groupId1);
-        grpU1ToGrp1.setChildId(userId1);
-        grpU1ToGrp1.setChildType(GroupChildType.USER);
-
-        groupMembershipRepository.create(grpU1ToGrp1);
-
-        GroupMembership grpG2ToGrp1 = new GroupMembership();
-        grpG2ToGrp1.setParentId(groupId1);
-        grpG2ToGrp1.setChildId(groupId2);
-        grpG2ToGrp1.setChildType(GroupChildType.GROUP);
-
-        groupMembershipRepository.create(grpG2ToGrp1);
-
-        filters = new HashMap<>();
-        filters.put(DBConstants.GroupMembershipTable.PARENT_ID, groupId2);
-        Assert.assertTrue(groupMembershipRepository.select(filters, 0, 10).size() == 2);
-
-        Assert.assertTrue(groupMembershipRepository.getChildMembershipsOfGroup(groupId2).size() == 2);
-        Assert.assertTrue(groupMembershipRepository.getAllChildUsers(groupId2).size() == 2);
-        Assert.assertTrue(groupMembershipRepository.getAllChildGroups(groupId1).size() == 1);
-
-        Assert.assertTrue(groupMembershipRepository.getAllParentMembershipsForChild(userId3).size() == 2);
-        Assert.assertTrue(groupMembershipRepository.getAllParentGroupsForChild(userId3).size() == 2);
-
-        //Creating permission types
-        PermissionType permissionType1 = new PermissionType();
-        String permissionName1 = "READ";
-        String permissionType1Id = domainId + ":" + permissionName1;
-        permissionType1.setPermissionTypeId(permissionType1Id);
-        permissionType1.setDomainId(domainId);
-        permissionType1.setName(permissionName1);
-        permissionType1.setDescription("READ description");
-        permissionType1.setCreatedTime(System.currentTimeMillis());
-        permissionType1.setUpdatedTime(System.currentTimeMillis());
-
-        PermissionTypeRepository permissionTypeRepository = new PermissionTypeRepository();
-        permissionType1 = permissionTypeRepository.create(permissionType1);
-        Assert.assertNotNull(permissionType1);
-
-        PermissionType permissionType2 = new PermissionType();
-        String permissionName2 = "WRITE";
-        String permissionType2Id = domainId + ":" + permissionName2;
-        permissionType2.setPermissionTypeId(permissionType2Id);
-        permissionType2.setDomainId(domainId);
-        permissionType2.setName(permissionName2);
-        permissionType2.setDescription("WRITE description");
-        permissionType2.setCreatedTime(System.currentTimeMillis());
-        permissionType2.setUpdatedTime(System.currentTimeMillis());
-        permissionTypeRepository.create(permissionType2);
-
-        //Creating entity types
-        EntityType entityType1 = new EntityType();
-        String entityType1Name = "Project";
-        String entityTypeId1 = domainId + ":" + entityType1Name;
-        entityType1.setEntityTypeId(entityTypeId1);
-        entityType1.setDomainId(domainId);
-        entityType1.setName(entityType1Name);
-        entityType1.setDescription("test entity type");
-        entityType1.setCreatedTime(System.currentTimeMillis());
-        entityType1.setUpdatedTime(System.currentTimeMillis());
-
-        EntityTypeRepository entityTypeRepository = new EntityTypeRepository();
-        entityType1 = entityTypeRepository.create(entityType1);
-        Assert.assertNotNull(entityType1);
-
-        EntityType entityType2 = new EntityType();
-        String entityType2Name = "Experiment";
-        String entityTypeId2 = domainId + ":" + entityType2Name;
-        entityType2.setEntityTypeId(entityTypeId2);
-        entityType2.setDomainId(domainId);
-        entityType2.setName(entityType2Name);
-        entityType2.setDescription("test entity type");
-        entityType2.setCreatedTime(System.currentTimeMillis());
-        entityType2.setUpdatedTime(System.currentTimeMillis());
-        entityTypeRepository.create(entityType2);
-
-        //Creating Entities
-        String entityId1 = UUID.randomUUID().toString();
-        Entity entity1 = new Entity();
-        entity1.setEntityId(entityId1);
-        entity1.setDomainId(domainId);
-        entity1.setEntityTypeId(entityTypeId1);
-        entity1.setOwnerId(userId1);
-        entity1.setName("Project name");
-        entity1.setDescription("Project description");
-        Map<String, String> metadataMap = new HashMap<>();
-        metadataMap.put("key", "val");
-        entity1.setMetadata(metadataMap);
-        entity1.setFullText("Project name project description");
-        entity1.setCreatedTime(System.currentTimeMillis());
-        entity1.setUpdatedTime(System.currentTimeMillis());
-
-        EntityRepository entityRepository = new EntityRepository();
-        entity1 = entityRepository.create(entity1);
-        Assert.assertNotNull(entity1);
-
-        String entityId2 = UUID.randomUUID().toString();
-        Entity entity2 = new Entity();
-        entity2.setEntityId(entityId2);
-        entity2.setDomainId(domainId);
-        entity2.setEntityTypeId(entityTypeId2);
-        entity2.setOwnerId(userId1);
-        entity2.setName("Experiment name");
-        entity2.setDescription("Experiment description");
-        entity2.setParentEntityId(entityId1);
-        metadataMap = new HashMap<>();
-        metadataMap.put("key", "val");
-        entity2.setMetadata(metadataMap);
-        entity2.setFullText("Project name project description");
-        entity2.setCreatedTime(System.currentTimeMillis());
-        entity2.setUpdatedTime(System.currentTimeMillis());
-
-        entityRepository.create(entity2);
-
-        String entityId3 = UUID.randomUUID().toString();
-        Entity entity3 = new Entity();
-        entity3.setEntityId(entityId3);
-        entity3.setDomainId(domainId);
-        entity3.setEntityTypeId(entityTypeId2);
-        entity3.setOwnerId(userId1);
-        entity3.setName("Experiment name");
-        entity3.setDescription("Experiment description");
-        entity3.setParentEntityId(entityId1);
-        metadataMap = new HashMap<>();
-        metadataMap.put("key", "val");
-        entity3.setMetadata(metadataMap);
-        entity3.setFullText("Project name project description");
-        entity3.setCreatedTime(System.currentTimeMillis());
-        entity3.setUpdatedTime(System.currentTimeMillis());
-
-        entityRepository.create(entity3);
-
-        // Creating sharing entries
-        Sharing sharing1 = new Sharing();
-        sharing1.setPermissionTypeId(permissionType1Id);
-        sharing1.setEntityId(entityId1);
-        sharing1.setGroupId(userId2);
-        sharing1.setSharingType(SharingType.DIRECT);
-
-        SharingRepository sharingRepository = new SharingRepository();
-        sharing1 = sharingRepository.create(sharing1);
-        Assert.assertNotNull(sharing1);
-
-        Sharing sharing2 = new Sharing();
-        sharing2.setPermissionTypeId(permissionType1Id);
-        sharing2.setEntityId(entityId3);
-        sharing2.setGroupId(groupId2);
-        sharing2.setSharingType(SharingType.DIRECT);
-
-        sharingRepository.create(sharing2);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
index f6327bf..9887b68 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Domain.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class Domain implements org.apache.thrift.TBase<Domain, Domain._Fields>, java.io.Serializable, Cloneable, Comparable<Domain> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Domain");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
index 1e439d7..f025dcb 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Entity.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class Entity implements org.apache.thrift.TBase<Entity, Entity._Fields>, java.io.Serializable, Cloneable, Comparable<Entity> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Entity");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
index d60a599..7fbaace 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/EntityType.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class EntityType implements org.apache.thrift.TBase<EntityType, EntityType._Fields>, java.io.Serializable, Cloneable, Comparable<EntityType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EntityType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
index 78c78f7..063dc99 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GovRegistryException.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class GovRegistryException extends TException implements org.apache.thrift.TBase<GovRegistryException, GovRegistryException._Fields>, java.io.Serializable, Cloneable, Comparable<GovRegistryException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GovRegistryException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
index d426063..4090776 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/GroupMembership.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class GroupMembership implements org.apache.thrift.TBase<GroupMembership, GroupMembership._Fields>, java.io.Serializable, Cloneable, Comparable<GroupMembership> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GroupMembership");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
index 465ddfc..316735a 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/PermissionType.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class PermissionType implements org.apache.thrift.TBase<PermissionType, PermissionType._Fields>, java.io.Serializable, Cloneable, Comparable<PermissionType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PermissionType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
index 43f049f..ef2d0be 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/Sharing.java
@@ -6,18 +6,35 @@
  */
 package org.apache.airavata.sharing.registry.models;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields>, java.io.Serializable, Cloneable, Comparable<Sharing> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Sharing");
 
@@ -26,7 +43,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
   private static final org.apache.thrift.protocol.TField GROUP_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("groupId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField GROUP_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("groupType", org.apache.thrift.protocol.TType.I32, (short)4);
   private static final org.apache.thrift.protocol.TField SHARING_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("sharingType", org.apache.thrift.protocol.TType.I32, (short)5);
-  private static final org.apache.thrift.protocol.TField INHERITED_PERMISSION_TYPE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("inheritedPermissionTypeId", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField INHERITED_PARENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("inheritedParentId", org.apache.thrift.protocol.TType.STRING, (short)6);
   private static final org.apache.thrift.protocol.TField CREATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("createdTime", org.apache.thrift.protocol.TType.I64, (short)7);
   private static final org.apache.thrift.protocol.TField UPDATED_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedTime", org.apache.thrift.protocol.TType.I64, (short)8);
 
@@ -49,7 +66,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
    * @see SharingType
    */
   public SharingType sharingType; // optional
-  public String inheritedPermissionTypeId; // optional
+  public String inheritedParentId; // optional
   public long createdTime; // optional
   public long updatedTime; // optional
 
@@ -68,7 +85,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
      * @see SharingType
      */
     SHARING_TYPE((short)5, "sharingType"),
-    INHERITED_PERMISSION_TYPE_ID((short)6, "inheritedPermissionTypeId"),
+    INHERITED_PARENT_ID((short)6, "inheritedParentId"),
     CREATED_TIME((short)7, "createdTime"),
     UPDATED_TIME((short)8, "updatedTime");
 
@@ -95,8 +112,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
           return GROUP_TYPE;
         case 5: // SHARING_TYPE
           return SHARING_TYPE;
-        case 6: // INHERITED_PERMISSION_TYPE_ID
-          return INHERITED_PERMISSION_TYPE_ID;
+        case 6: // INHERITED_PARENT_ID
+          return INHERITED_PARENT_ID;
         case 7: // CREATED_TIME
           return CREATED_TIME;
         case 8: // UPDATED_TIME
@@ -144,7 +161,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
   private static final int __CREATEDTIME_ISSET_ID = 0;
   private static final int __UPDATEDTIME_ISSET_ID = 1;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.PERMISSION_TYPE_ID,_Fields.ENTITY_ID,_Fields.GROUP_ID,_Fields.GROUP_TYPE,_Fields.SHARING_TYPE,_Fields.INHERITED_PERMISSION_TYPE_ID,_Fields.CREATED_TIME,_Fields.UPDATED_TIME};
+  private static final _Fields optionals[] = {_Fields.PERMISSION_TYPE_ID,_Fields.ENTITY_ID,_Fields.GROUP_ID,_Fields.GROUP_TYPE,_Fields.SHARING_TYPE,_Fields.INHERITED_PARENT_ID,_Fields.CREATED_TIME,_Fields.UPDATED_TIME};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -158,7 +175,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, GroupType.class)));
     tmpMap.put(_Fields.SHARING_TYPE, new org.apache.thrift.meta_data.FieldMetaData("sharingType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, SharingType.class)));
-    tmpMap.put(_Fields.INHERITED_PERMISSION_TYPE_ID, new org.apache.thrift.meta_data.FieldMetaData("inheritedPermissionTypeId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+    tmpMap.put(_Fields.INHERITED_PARENT_ID, new org.apache.thrift.meta_data.FieldMetaData("inheritedParentId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CREATED_TIME, new org.apache.thrift.meta_data.FieldMetaData("createdTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
@@ -191,8 +208,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
     if (other.isSetSharingType()) {
       this.sharingType = other.sharingType;
     }
-    if (other.isSetInheritedPermissionTypeId()) {
-      this.inheritedPermissionTypeId = other.inheritedPermissionTypeId;
+    if (other.isSetInheritedParentId()) {
+      this.inheritedParentId = other.inheritedParentId;
     }
     this.createdTime = other.createdTime;
     this.updatedTime = other.updatedTime;
@@ -209,7 +226,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
     this.groupId = null;
     this.groupType = null;
     this.sharingType = null;
-    this.inheritedPermissionTypeId = null;
+    this.inheritedParentId = null;
     setCreatedTimeIsSet(false);
     this.createdTime = 0;
     setUpdatedTimeIsSet(false);
@@ -352,27 +369,27 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
     }
   }
 
-  public String getInheritedPermissionTypeId() {
-    return this.inheritedPermissionTypeId;
+  public String getInheritedParentId() {
+    return this.inheritedParentId;
   }
 
-  public Sharing setInheritedPermissionTypeId(String inheritedPermissionTypeId) {
-    this.inheritedPermissionTypeId = inheritedPermissionTypeId;
+  public Sharing setInheritedParentId(String inheritedParentId) {
+    this.inheritedParentId = inheritedParentId;
     return this;
   }
 
-  public void unsetInheritedPermissionTypeId() {
-    this.inheritedPermissionTypeId = null;
+  public void unsetInheritedParentId() {
+    this.inheritedParentId = null;
   }
 
-  /** Returns true if field inheritedPermissionTypeId is set (has been assigned a value) and false otherwise */
-  public boolean isSetInheritedPermissionTypeId() {
-    return this.inheritedPermissionTypeId != null;
+  /** Returns true if field inheritedParentId is set (has been assigned a value) and false otherwise */
+  public boolean isSetInheritedParentId() {
+    return this.inheritedParentId != null;
   }
 
-  public void setInheritedPermissionTypeIdIsSet(boolean value) {
+  public void setInheritedParentIdIsSet(boolean value) {
     if (!value) {
-      this.inheritedPermissionTypeId = null;
+      this.inheritedParentId = null;
     }
   }
 
@@ -464,11 +481,11 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
       }
       break;
 
-    case INHERITED_PERMISSION_TYPE_ID:
+    case INHERITED_PARENT_ID:
       if (value == null) {
-        unsetInheritedPermissionTypeId();
+        unsetInheritedParentId();
       } else {
-        setInheritedPermissionTypeId((String)value);
+        setInheritedParentId((String)value);
       }
       break;
 
@@ -508,8 +525,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
     case SHARING_TYPE:
       return getSharingType();
 
-    case INHERITED_PERMISSION_TYPE_ID:
-      return getInheritedPermissionTypeId();
+    case INHERITED_PARENT_ID:
+      return getInheritedParentId();
 
     case CREATED_TIME:
       return getCreatedTime();
@@ -538,8 +555,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
       return isSetGroupType();
     case SHARING_TYPE:
       return isSetSharingType();
-    case INHERITED_PERMISSION_TYPE_ID:
-      return isSetInheritedPermissionTypeId();
+    case INHERITED_PARENT_ID:
+      return isSetInheritedParentId();
     case CREATED_TIME:
       return isSetCreatedTime();
     case UPDATED_TIME:
@@ -606,12 +623,12 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
         return false;
     }
 
-    boolean this_present_inheritedPermissionTypeId = true && this.isSetInheritedPermissionTypeId();
-    boolean that_present_inheritedPermissionTypeId = true && that.isSetInheritedPermissionTypeId();
-    if (this_present_inheritedPermissionTypeId || that_present_inheritedPermissionTypeId) {
-      if (!(this_present_inheritedPermissionTypeId && that_present_inheritedPermissionTypeId))
+    boolean this_present_inheritedParentId = true && this.isSetInheritedParentId();
+    boolean that_present_inheritedParentId = true && that.isSetInheritedParentId();
+    if (this_present_inheritedParentId || that_present_inheritedParentId) {
+      if (!(this_present_inheritedParentId && that_present_inheritedParentId))
         return false;
-      if (!this.inheritedPermissionTypeId.equals(that.inheritedPermissionTypeId))
+      if (!this.inheritedParentId.equals(that.inheritedParentId))
         return false;
     }
 
@@ -665,10 +682,10 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
     if (present_sharingType)
       list.add(sharingType.getValue());
 
-    boolean present_inheritedPermissionTypeId = true && (isSetInheritedPermissionTypeId());
-    list.add(present_inheritedPermissionTypeId);
-    if (present_inheritedPermissionTypeId)
-      list.add(inheritedPermissionTypeId);
+    boolean present_inheritedParentId = true && (isSetInheritedParentId());
+    list.add(present_inheritedParentId);
+    if (present_inheritedParentId)
+      list.add(inheritedParentId);
 
     boolean present_createdTime = true && (isSetCreatedTime());
     list.add(present_createdTime);
@@ -741,12 +758,12 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetInheritedPermissionTypeId()).compareTo(other.isSetInheritedPermissionTypeId());
+    lastComparison = Boolean.valueOf(isSetInheritedParentId()).compareTo(other.isSetInheritedParentId());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetInheritedPermissionTypeId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inheritedPermissionTypeId, other.inheritedPermissionTypeId);
+    if (isSetInheritedParentId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inheritedParentId, other.inheritedParentId);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -840,13 +857,13 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
       }
       first = false;
     }
-    if (isSetInheritedPermissionTypeId()) {
+    if (isSetInheritedParentId()) {
       if (!first) sb.append(", ");
-      sb.append("inheritedPermissionTypeId:");
-      if (this.inheritedPermissionTypeId == null) {
+      sb.append("inheritedParentId:");
+      if (this.inheritedParentId == null) {
         sb.append("null");
       } else {
-        sb.append(this.inheritedPermissionTypeId);
+        sb.append(this.inheritedParentId);
       }
       first = false;
     }
@@ -947,10 +964,10 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // INHERITED_PERMISSION_TYPE_ID
+          case 6: // INHERITED_PARENT_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.inheritedPermissionTypeId = iprot.readString();
-              struct.setInheritedPermissionTypeIdIsSet(true);
+              struct.inheritedParentId = iprot.readString();
+              struct.setInheritedParentIdIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -1021,10 +1038,10 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
           oprot.writeFieldEnd();
         }
       }
-      if (struct.inheritedPermissionTypeId != null) {
-        if (struct.isSetInheritedPermissionTypeId()) {
-          oprot.writeFieldBegin(INHERITED_PERMISSION_TYPE_ID_FIELD_DESC);
-          oprot.writeString(struct.inheritedPermissionTypeId);
+      if (struct.inheritedParentId != null) {
+        if (struct.isSetInheritedParentId()) {
+          oprot.writeFieldBegin(INHERITED_PARENT_ID_FIELD_DESC);
+          oprot.writeString(struct.inheritedParentId);
           oprot.writeFieldEnd();
         }
       }
@@ -1071,7 +1088,7 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
       if (struct.isSetSharingType()) {
         optionals.set(4);
       }
-      if (struct.isSetInheritedPermissionTypeId()) {
+      if (struct.isSetInheritedParentId()) {
         optionals.set(5);
       }
       if (struct.isSetCreatedTime()) {
@@ -1096,8 +1113,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
       if (struct.isSetSharingType()) {
         oprot.writeI32(struct.sharingType.getValue());
       }
-      if (struct.isSetInheritedPermissionTypeId()) {
-        oprot.writeString(struct.inheritedPermissionTypeId);
+      if (struct.isSetInheritedParentId()) {
+        oprot.writeString(struct.inheritedParentId);
       }
       if (struct.isSetCreatedTime()) {
         oprot.writeI64(struct.createdTime);
@@ -1132,8 +1149,8 @@ public class Sharing implements org.apache.thrift.TBase<Sharing, Sharing._Fields
         struct.setSharingTypeIsSet(true);
       }
       if (incoming.get(5)) {
-        struct.inheritedPermissionTypeId = iprot.readString();
-        struct.setInheritedPermissionTypeIdIsSet(true);
+        struct.inheritedParentId = iprot.readString();
+        struct.setInheritedParentIdIsSet(true);
       }
       if (incoming.get(6)) {
         struct.createdTime = iprot.readI64();

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
index d70b8c1..6217a72 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/User.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/244e8416/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
----------------------------------------------------------------------
diff --git a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
index 442e597..15f09a9 100644
--- a/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
+++ b/modules/airavata-sharing-registry/airavata-sharing-registry-stubs/src/main/java/org/apache/airavata/sharing/registry/models/UserGroup.java
@@ -34,7 +34,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-03")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-04")
 public class UserGroup implements org.apache.thrift.TBase<UserGroup, UserGroup._Fields>, java.io.Serializable, Cloneable, Comparable<UserGroup> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserGroup");