You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/05/09 13:49:46 UTC

[airavata] branch develop updated: AIRAVATA-3030 Get directly shared lists of users, groups

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/develop by this push:
     new 5e16505  AIRAVATA-3030 Get directly shared lists of users, groups
5e16505 is described below

commit 5e16505667a2209e93949e0f8a41a84c69d31fa8
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu May 9 09:45:53 2019 -0400

    AIRAVATA-3030 Get directly shared lists of users, groups
    
    Sharings that are inherited can't be updated for an entity. These
    methods allow getting just those sharings that were directly granted
    to the entity for use in populating an editor of the entity's sharings.
---
 .../api/server/handler/AiravataServerHandler.java  |    83 +-
 .../java/org/apache/airavata/api/Airavata.java     | 47352 ++++++++++---------
 .../resources/lib/airavata/api/Airavata-remote     |    14 +
 .../main/resources/lib/airavata/api/Airavata.py    |  1122 +-
 .../api/sharing/SharingRegistryService-remote      |    14 +
 .../airavata/api/sharing/SharingRegistryService.py |   562 +-
 .../service/security/KeyCloakSecurityManager.java  |     7 +-
 .../db/repositories/UserGroupRepository.java       |    20 +-
 .../registry/db/repositories/UserRepository.java   |    23 +-
 .../server/SharingRegistryServerHandler.java       |    23 +
 .../registry/SharingRegistryServerHandlerTest.java |     7 +
 .../service/cpi/SharingRegistryService.java        |  3010 +-
 .../sharing-service-docs/api-docs/index.html       |     2 +
 .../sharing-service-docs/api-docs/sharing_cpi.html |    14 +
 .../thrift_models/sharing_cpi.thrift               |    10 +-
 .../airavata-apis/airavata_api.thrift              |    14 +
 16 files changed, 29609 insertions(+), 22668 deletions(-)

diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 7b59f00..80e2f36 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -94,6 +94,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.*;
+import java.util.function.BiFunction;
 import java.util.stream.Collectors;
 
 public class AiravataServerHandler implements Airavata.Iface {
@@ -5174,29 +5175,47 @@ public class AiravataServerHandler implements Airavata.Iface {
 
     @Override
     @SecurityCheck
-    public List<String> getAllAccessibleUsers(AuthzToken authzToken, String resourceId, ResourcePermissionType permissionType) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+    public List<String> getAllAccessibleUsers(AuthzToken authzToken, String resourceId,
+            ResourcePermissionType permissionType) throws InvalidRequestException, AiravataClientException,
+            AiravataSystemException, AuthorizationException, TException {
+        String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
+        return getAllAccessibleUsersInternal(authzToken, resourceId, permissionType, (c, t) -> {
+            try {
+                return c.getListOfSharedUsers(gatewayId, resourceId, gatewayId + ":" + t.name());
+            } catch (TException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    @Override
+    @SecurityCheck
+    public List<String> getAllDirectlyAccessibleUsers(AuthzToken authzToken, String resourceId,
+            ResourcePermissionType permissionType) throws InvalidRequestException, AiravataClientException,
+            AiravataSystemException, AuthorizationException, TException {
+        String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
+        return getAllAccessibleUsersInternal(authzToken, resourceId, permissionType, (c, t) -> {
+            try {
+                return c.getListOfDirectlySharedUsers(gatewayId, resourceId, gatewayId + ":" + t.name());
+            } catch (TException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    private List<String> getAllAccessibleUsersInternal(AuthzToken authzToken, String resourceId, ResourcePermissionType permissionType,  BiFunction<SharingRegistryService.Client, ResourcePermissionType, Collection<User>> userListFunction) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         RegistryService.Client regClient = registryClientPool.getResource();
         SharingRegistryService.Client sharingClient = sharingClientPool.getResource();
         try {
             HashSet<String> accessibleUsers = new HashSet<>();
             if (permissionType.equals(ResourcePermissionType.WRITE)) {
-                sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID)
-                                + ":WRITE").stream().forEach(u -> accessibleUsers.add(u.userId));
-                sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID)
-                                + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId));
+                userListFunction.apply(sharingClient, ResourcePermissionType.WRITE).stream().forEach(u -> accessibleUsers.add(u.userId));
+                userListFunction.apply(sharingClient, ResourcePermissionType.OWNER).stream().forEach(u -> accessibleUsers.add(u.userId));
             } else if (permissionType.equals(ResourcePermissionType.READ)) {
-                sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID)
-                                + ":READ").stream().forEach(u -> accessibleUsers.add(u.userId));
-                sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID)
-                                + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId));
+                userListFunction.apply(sharingClient, ResourcePermissionType.READ).stream().forEach(u -> accessibleUsers.add(u.userId));
+                userListFunction.apply(sharingClient, ResourcePermissionType.OWNER).stream().forEach(u -> accessibleUsers.add(u.userId));
             } else if (permissionType.equals(ResourcePermissionType.OWNER)) {
-                sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID),
-                        resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID)
-                                + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId));
+                userListFunction.apply(sharingClient, ResourcePermissionType.OWNER).stream().forEach(u -> accessibleUsers.add(u.userId));
             }
             registryClientPool.returnResource(regClient);
             sharingClientPool.returnResource(sharingClient);
@@ -5215,17 +5234,43 @@ public class AiravataServerHandler implements Airavata.Iface {
     @Override
     @SecurityCheck
     public List<String> getAllAccessibleGroups(AuthzToken authzToken, String resourceId, ResourcePermissionType permissionType) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
+        return getAllAccessibleGroupsInternal(authzToken, resourceId, permissionType, (c, t) -> {
+            try {
+                return c.getListOfSharedGroups(gatewayId, resourceId, gatewayId + ":" + t.name());
+            } catch (TException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    @Override
+    @SecurityCheck
+    public List<String> getAllDirectlyAccessibleGroups(AuthzToken authzToken, String resourceId,
+            ResourcePermissionType permissionType) throws InvalidRequestException, AiravataClientException,
+            AiravataSystemException, AuthorizationException, TException {
+        String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
+        return getAllAccessibleGroupsInternal(authzToken, resourceId, permissionType, (c, t) -> {
+            try {
+                return c.getListOfDirectlySharedGroups(gatewayId, resourceId, gatewayId + ":" + t.name());
+            } catch (TException e) {
+                throw new RuntimeException(e);
+            }
+        });
+    }
+
+    private List<String> getAllAccessibleGroupsInternal(AuthzToken authzToken, String resourceId, ResourcePermissionType permissionType, BiFunction<SharingRegistryService.Client, ResourcePermissionType, Collection<UserGroup>> groupListFunction)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         RegistryService.Client regClient = registryClientPool.getResource();
         SharingRegistryService.Client sharingClient = sharingClientPool.getResource();
         try {
             HashSet<String> accessibleGroups = new HashSet<>();
-            final String domainId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
             if (permissionType.equals(ResourcePermissionType.WRITE)) {
-                sharingClient.getListOfSharedGroups(domainId, resourceId, domainId + ":WRITE")
+                groupListFunction.apply(sharingClient, ResourcePermissionType.WRITE)
                         .stream()
                         .forEach(g -> accessibleGroups.add(g.groupId));
             } else if (permissionType.equals(ResourcePermissionType.READ)) {
-                sharingClient.getListOfSharedGroups(domainId, resourceId, domainId + ":READ")
+                groupListFunction.apply(sharingClient, ResourcePermissionType.READ)
                         .stream()
                         .forEach(g -> accessibleGroups.add(g.groupId));
             }
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index abf5c8e..c44c620 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -2947,6 +2947,10 @@ public class Airavata {
 
     public java.util.List<java.lang.String> getAllAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
+    public java.util.List<java.lang.String> getAllDirectlyAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
+    public java.util.List<java.lang.String> getAllDirectlyAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
+
     public boolean userHasAccess(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
 
     public java.lang.String createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException;
@@ -3336,6 +3340,10 @@ public class Airavata {
 
     public void getAllAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllDirectlyAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
+
+    public void getAllDirectlyAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
+
     public void userHasAccess(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 
     public void createGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
@@ -9489,6 +9497,80 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllAccessibleGroups failed: unknown result");
     }
 
+    public java.util.List<java.lang.String> getAllDirectlyAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_getAllDirectlyAccessibleUsers(authzToken, resourceId, permissionType);
+      return recv_getAllDirectlyAccessibleUsers();
+    }
+
+    public void send_getAllDirectlyAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.thrift.TException
+    {
+      getAllDirectlyAccessibleUsers_args args = new getAllDirectlyAccessibleUsers_args();
+      args.setAuthzToken(authzToken);
+      args.setResourceId(resourceId);
+      args.setPermissionType(permissionType);
+      sendBase("getAllDirectlyAccessibleUsers", args);
+    }
+
+    public java.util.List<java.lang.String> recv_getAllDirectlyAccessibleUsers() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      getAllDirectlyAccessibleUsers_result result = new getAllDirectlyAccessibleUsers_result();
+      receiveBase(result, "getAllDirectlyAccessibleUsers");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllDirectlyAccessibleUsers failed: unknown result");
+    }
+
+    public java.util.List<java.lang.String> getAllDirectlyAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      send_getAllDirectlyAccessibleGroups(authzToken, resourceId, permissionType);
+      return recv_getAllDirectlyAccessibleGroups();
+    }
+
+    public void send_getAllDirectlyAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.thrift.TException
+    {
+      getAllDirectlyAccessibleGroups_args args = new getAllDirectlyAccessibleGroups_args();
+      args.setAuthzToken(authzToken);
+      args.setResourceId(resourceId);
+      args.setPermissionType(permissionType);
+      sendBase("getAllDirectlyAccessibleGroups", args);
+    }
+
+    public java.util.List<java.lang.String> recv_getAllDirectlyAccessibleGroups() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
+    {
+      getAllDirectlyAccessibleGroups_result result = new getAllDirectlyAccessibleGroups_result();
+      receiveBase(result, "getAllDirectlyAccessibleGroups");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.ire != null) {
+        throw result.ire;
+      }
+      if (result.ace != null) {
+        throw result.ace;
+      }
+      if (result.ase != null) {
+        throw result.ase;
+      }
+      if (result.ae != null) {
+        throw result.ae;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllDirectlyAccessibleGroups failed: unknown result");
+    }
+
     public boolean userHasAccess(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException
     {
       send_userHasAccess(authzToken, resourceId, permissionType);
@@ -16573,6 +16655,82 @@ public class Airavata {
       }
     }
 
+    public void getAllDirectlyAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllDirectlyAccessibleUsers_call method_call = new getAllDirectlyAccessibleUsers_call(authzToken, resourceId, permissionType, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllDirectlyAccessibleUsers_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private java.lang.String resourceId;
+      private org.apache.airavata.model.group.ResourcePermissionType permissionType;
+      public getAllDirectlyAccessibleUsers_call(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.T [...]
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.resourceId = resourceId;
+        this.permissionType = permissionType;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllDirectlyAccessibleUsers", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllDirectlyAccessibleUsers_args args = new getAllDirectlyAccessibleUsers_args();
+        args.setAuthzToken(authzToken);
+        args.setResourceId(resourceId);
+        args.setPermissionType(permissionType);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.util.List<java.lang.String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllDirectlyAccessibleUsers();
+      }
+    }
+
+    public void getAllDirectlyAccessibleGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllDirectlyAccessibleGroups_call method_call = new getAllDirectlyAccessibleGroups_call(authzToken, resourceId, permissionType, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllDirectlyAccessibleGroups_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<java.lang.String>> {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private java.lang.String resourceId;
+      private org.apache.airavata.model.group.ResourcePermissionType permissionType;
+      public getAllDirectlyAccessibleGroups_call(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift. [...]
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.resourceId = resourceId;
+        this.permissionType = permissionType;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllDirectlyAccessibleGroups", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllDirectlyAccessibleGroups_args args = new getAllDirectlyAccessibleGroups_args();
+        args.setAuthzToken(authzToken);
+        args.setResourceId(resourceId);
+        args.setPermissionType(permissionType);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public java.util.List<java.lang.String> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new java.lang.IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_getAllDirectlyAccessibleGroups();
+      }
+    }
+
     public void userHasAccess(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       userHasAccess_call method_call = new userHasAccess_call(authzToken, resourceId, permissionType, resultHandler, this, ___protocolFactory, ___transport);
@@ -17647,6 +17805,8 @@ public class Airavata {
       processMap.put("revokeSharingOfResourceFromGroups", new revokeSharingOfResourceFromGroups());
       processMap.put("getAllAccessibleUsers", new getAllAccessibleUsers());
       processMap.put("getAllAccessibleGroups", new getAllAccessibleGroups());
+      processMap.put("getAllDirectlyAccessibleUsers", new getAllDirectlyAccessibleUsers());
+      processMap.put("getAllDirectlyAccessibleGroups", new getAllDirectlyAccessibleGroups());
       processMap.put("userHasAccess", new userHasAccess());
       processMap.put("createGroupResourceProfile", new createGroupResourceProfile());
       processMap.put("updateGroupResourceProfile", new updateGroupResourceProfile());
@@ -22706,6 +22866,66 @@ public class Airavata {
       }
     }
 
+    public static class getAllDirectlyAccessibleUsers<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllDirectlyAccessibleUsers_args> {
+      public getAllDirectlyAccessibleUsers() {
+        super("getAllDirectlyAccessibleUsers");
+      }
+
+      public getAllDirectlyAccessibleUsers_args getEmptyArgsInstance() {
+        return new getAllDirectlyAccessibleUsers_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllDirectlyAccessibleUsers_result getResult(I iface, getAllDirectlyAccessibleUsers_args args) throws org.apache.thrift.TException {
+        getAllDirectlyAccessibleUsers_result result = new getAllDirectlyAccessibleUsers_result();
+        try {
+          result.success = iface.getAllDirectlyAccessibleUsers(args.authzToken, args.resourceId, args.permissionType);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllDirectlyAccessibleGroups<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllDirectlyAccessibleGroups_args> {
+      public getAllDirectlyAccessibleGroups() {
+        super("getAllDirectlyAccessibleGroups");
+      }
+
+      public getAllDirectlyAccessibleGroups_args getEmptyArgsInstance() {
+        return new getAllDirectlyAccessibleGroups_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllDirectlyAccessibleGroups_result getResult(I iface, getAllDirectlyAccessibleGroups_args args) throws org.apache.thrift.TException {
+        getAllDirectlyAccessibleGroups_result result = new getAllDirectlyAccessibleGroups_result();
+        try {
+          result.success = iface.getAllDirectlyAccessibleGroups(args.authzToken, args.resourceId, args.permissionType);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
     public static class userHasAccess<I extends Iface> extends org.apache.thrift.ProcessFunction<I, userHasAccess_args> {
       public userHasAccess() {
         super("userHasAccess");
@@ -23641,6 +23861,8 @@ public class Airavata {
       processMap.put("revokeSharingOfResourceFromGroups", new revokeSharingOfResourceFromGroups());
       processMap.put("getAllAccessibleUsers", new getAllAccessibleUsers());
       processMap.put("getAllAccessibleGroups", new getAllAccessibleGroups());
+      processMap.put("getAllDirectlyAccessibleUsers", new getAllDirectlyAccessibleUsers());
+      processMap.put("getAllDirectlyAccessibleGroups", new getAllDirectlyAccessibleGroups());
       processMap.put("userHasAccess", new userHasAccess());
       processMap.put("createGroupResourceProfile", new createGroupResourceProfile());
       processMap.put("updateGroupResourceProfile", new updateGroupResourceProfile());
@@ -36469,22 +36691,21 @@ public class Airavata {
       }
     }
 
-    public static class userHasAccess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, userHasAccess_args, java.lang.Boolean> {
-      public userHasAccess() {
-        super("userHasAccess");
+    public static class getAllDirectlyAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllDirectlyAccessibleUsers_args, java.util.List<java.lang.String>> {
+      public getAllDirectlyAccessibleUsers() {
+        super("getAllDirectlyAccessibleUsers");
       }
 
-      public userHasAccess_args getEmptyArgsInstance() {
-        return new userHasAccess_args();
+      public getAllDirectlyAccessibleUsers_args getEmptyArgsInstance() {
+        return new getAllDirectlyAccessibleUsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            userHasAccess_result result = new userHasAccess_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAllDirectlyAccessibleUsers_result result = new getAllDirectlyAccessibleUsers_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36498,7 +36719,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            userHasAccess_result result = new userHasAccess_result();
+            getAllDirectlyAccessibleUsers_result result = new getAllDirectlyAccessibleUsers_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36542,25 +36763,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, userHasAccess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.userHasAccess(args.authzToken, args.resourceId, args.permissionType,resultHandler);
+      public void start(I iface, getAllDirectlyAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllDirectlyAccessibleUsers(args.authzToken, args.resourceId, args.permissionType,resultHandler);
       }
     }
 
-    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
-      public createGroupResourceProfile() {
-        super("createGroupResourceProfile");
+    public static class getAllDirectlyAccessibleGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllDirectlyAccessibleGroups_args, java.util.List<java.lang.String>> {
+      public getAllDirectlyAccessibleGroups() {
+        super("getAllDirectlyAccessibleGroups");
       }
 
-      public createGroupResourceProfile_args getEmptyArgsInstance() {
-        return new createGroupResourceProfile_args();
+      public getAllDirectlyAccessibleGroups_args getEmptyArgsInstance() {
+        return new getAllDirectlyAccessibleGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
+          public void onComplete(java.util.List<java.lang.String> o) {
+            getAllDirectlyAccessibleGroups_result result = new getAllDirectlyAccessibleGroups_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36575,7 +36796,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
+            getAllDirectlyAccessibleGroups_result result = new getAllDirectlyAccessibleGroups_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36619,25 +36840,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
+      public void start(I iface, getAllDirectlyAccessibleGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+        iface.getAllDirectlyAccessibleGroups(args.authzToken, args.resourceId, args.permissionType,resultHandler);
       }
     }
 
-    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
-      public updateGroupResourceProfile() {
-        super("updateGroupResourceProfile");
+    public static class userHasAccess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, userHasAccess_args, java.lang.Boolean> {
+      public userHasAccess() {
+        super("userHasAccess");
       }
 
-      public updateGroupResourceProfile_args getEmptyArgsInstance() {
-        return new updateGroupResourceProfile_args();
+      public userHasAccess_args getEmptyArgsInstance() {
+        return new userHasAccess_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            userHasAccess_result result = new userHasAccess_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36651,7 +36874,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
+            userHasAccess_result result = new userHasAccess_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36695,25 +36918,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-        iface.updateGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
+      public void start(I iface, userHasAccess_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.userHasAccess(args.authzToken, args.resourceId, args.permissionType,resultHandler);
       }
     }
 
-    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
-      public getGroupResourceProfile() {
-        super("getGroupResourceProfile");
+    public static class createGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroupResourceProfile_args, java.lang.String> {
+      public createGroupResourceProfile() {
+        super("createGroupResourceProfile");
       }
 
-      public getGroupResourceProfile_args getEmptyArgsInstance() {
-        return new getGroupResourceProfile_args();
+      public createGroupResourceProfile_args getEmptyArgsInstance() {
+        return new createGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36728,7 +36951,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
+            createGroupResourceProfile_result result = new createGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36772,27 +36995,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, createGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.createGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
-      public removeGroupResourceProfile() {
-        super("removeGroupResourceProfile");
+    public static class updateGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroupResourceProfile_args, Void> {
+      public updateGroupResourceProfile() {
+        super("updateGroupResourceProfile");
       }
 
-      public removeGroupResourceProfile_args getEmptyArgsInstance() {
-        return new removeGroupResourceProfile_args();
+      public updateGroupResourceProfile_args getEmptyArgsInstance() {
+        return new updateGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+          public void onComplete(Void o) {
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -36806,7 +37027,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
+            updateGroupResourceProfile_result result = new updateGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36850,25 +37071,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, updateGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+        iface.updateGroupResourceProfile(args.authzToken, args.groupResourceProfile,resultHandler);
       }
     }
 
-    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
-      public getGroupResourceList() {
-        super("getGroupResourceList");
+    public static class getGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceProfile_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> {
+      public getGroupResourceProfile() {
+        super("getGroupResourceProfile");
       }
 
-      public getGroupResourceList_args getEmptyArgsInstance() {
-        return new getGroupResourceList_args();
+      public getGroupResourceProfile_args getEmptyArgsInstance() {
+        return new getGroupResourceProfile_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
-            getGroupResourceList_result result = new getGroupResourceList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile o) {
+            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -36883,7 +37104,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupResourceList_result result = new getGroupResourceList_result();
+            getGroupResourceProfile_result result = new getGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -36927,25 +37148,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupResourceList(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, getGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
-      public removeGroupComputePrefs() {
-        super("removeGroupComputePrefs");
+    public static class removeGroupResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupResourceProfile_args, java.lang.Boolean> {
+      public removeGroupResourceProfile() {
+        super("removeGroupResourceProfile");
       }
 
-      public removeGroupComputePrefs_args getEmptyArgsInstance() {
-        return new removeGroupComputePrefs_args();
+      public removeGroupResourceProfile_args getEmptyArgsInstance() {
+        return new removeGroupResourceProfile_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -36961,7 +37182,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
+            removeGroupResourceProfile_result result = new removeGroupResourceProfile_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37005,27 +37226,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputePrefs(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, removeGroupResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupResourceProfile(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupComputeResourcePolicy() {
-        super("removeGroupComputeResourcePolicy");
+    public static class getGroupResourceList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupResourceList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> {
+      public getGroupResourceList() {
+        super("getGroupResourceList");
       }
 
-      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupComputeResourcePolicy_args();
+      public getGroupResourceList_args getEmptyArgsInstance() {
+        return new getGroupResourceList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> o) {
+            getGroupResourceList_result result = new getGroupResourceList_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37039,7 +37259,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
+            getGroupResourceList_result result = new getGroupResourceList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37083,25 +37303,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, getGroupResourceList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupResourceList(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
-      public removeGroupBatchQueueResourcePolicy() {
-        super("removeGroupBatchQueueResourcePolicy");
+    public static class removeGroupComputePrefs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputePrefs_args, java.lang.Boolean> {
+      public removeGroupComputePrefs() {
+        super("removeGroupComputePrefs");
       }
 
-      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new removeGroupBatchQueueResourcePolicy_args();
+      public removeGroupComputePrefs_args getEmptyArgsInstance() {
+        return new removeGroupComputePrefs_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
           public void onComplete(java.lang.Boolean o) {
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -37117,84 +37337,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
-            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
-              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
-              result.setIreIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
-              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
-              result.setAceIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
-              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
-              result.setAseIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
-              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
-              result.setAeIsSet(true);
-              msg = result;
-            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
-              _LOGGER.error("TTransportException inside handler", e);
-              fb.close();
-              return;
-            } else if (e instanceof org.apache.thrift.TApplicationException) {
-              _LOGGER.error("TApplicationException inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = (org.apache.thrift.TApplicationException)e;
-            } else {
-              _LOGGER.error("Exception inside handler", e);
-              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
-              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-            } catch (java.lang.Exception ex) {
-              _LOGGER.error("Exception writing to internal frame buffer", ex);
-              fb.close();
-            }
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeGroupBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
-      }
-    }
-
-    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
-      public getGroupComputeResourcePreference() {
-        super("getGroupComputeResourcePreference");
-      }
-
-      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePreference_args();
-      }
-
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
-            result.success = o;
-            try {
-              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
-            } catch (org.apache.thrift.transport.TTransportException e) {
-              _LOGGER.error("TTransportException writing to internal frame buffer", e);
-              fb.close();
-            } catch (java.lang.Exception e) {
-              _LOGGER.error("Exception writing to internal frame buffer", e);
-              onError(e);
-            }
-          }
-          public void onError(java.lang.Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
+            removeGroupComputePrefs_result result = new removeGroupComputePrefs_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37238,26 +37381,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePreference(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, removeGroupComputePrefs_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputePrefs(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
-      public getGroupComputeResourcePolicy() {
-        super("getGroupComputeResourcePolicy");
+    public static class removeGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupComputeResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupComputeResourcePolicy() {
+        super("removeGroupComputeResourcePolicy");
       }
 
-      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePolicy_args();
+      public removeGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupComputeResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37271,7 +37415,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
+            removeGroupComputeResourcePolicy_result result = new removeGroupComputeResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37315,26 +37459,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
-      public getBatchQueueResourcePolicy() {
-        super("getBatchQueueResourcePolicy");
+    public static class removeGroupBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeGroupBatchQueueResourcePolicy_args, java.lang.Boolean> {
+      public removeGroupBatchQueueResourcePolicy() {
+        super("removeGroupBatchQueueResourcePolicy");
       }
 
-      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
-        return new getBatchQueueResourcePolicy_args();
+      public removeGroupBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new removeGroupBatchQueueResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37348,7 +37493,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
+            removeGroupBatchQueueResourcePolicy_result result = new removeGroupBatchQueueResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37392,25 +37537,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
-        iface.getBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
+      public void start(I iface, removeGroupBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeGroupBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
-      public getGroupComputeResourcePrefList() {
-        super("getGroupComputeResourcePrefList");
+    public static class getGroupComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePreference_args, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> {
+      public getGroupComputeResourcePreference() {
+        super("getGroupComputeResourcePreference");
       }
 
-      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePrefList_args();
+      public getGroupComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePreference_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference o) {
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37425,7 +37570,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
+            getGroupComputeResourcePreference_result result = new getGroupComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37469,25 +37614,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePrefList(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePreference(args.authzToken, args.computeResourceId, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
-      public getGroupBatchQueueResourcePolicyList() {
-        super("getGroupBatchQueueResourcePolicyList");
+    public static class getGroupComputeResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> {
+      public getGroupComputeResourcePolicy() {
+        super("getGroupComputeResourcePolicy");
       }
 
-      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
-        return new getGroupBatchQueueResourcePolicyList_args();
+      public getGroupComputeResourcePolicy_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy o) {
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37502,7 +37647,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
+            getGroupComputeResourcePolicy_result result = new getGroupComputeResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37546,25 +37691,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupBatchQueueResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupBatchQueueResourcePolicyList(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getGroupComputeResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGroupComputeResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> {
-      public getGroupComputeResourcePolicyList() {
-        super("getGroupComputeResourcePolicyList");
+    public static class getBatchQueueResourcePolicy<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getBatchQueueResourcePolicy_args, org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> {
+      public getBatchQueueResourcePolicy() {
+        super("getBatchQueueResourcePolicy");
       }
 
-      public getGroupComputeResourcePolicyList_args getEmptyArgsInstance() {
-        return new getGroupComputeResourcePolicyList_args();
+      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
+        return new getBatchQueueResourcePolicy_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> o) {
-            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy o) {
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37579,7 +37724,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
+            getBatchQueueResourcePolicy_result result = new getBatchQueueResourcePolicy_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37623,25 +37768,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGroupComputeResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
-        iface.getGroupComputeResourcePolicyList(args.authzToken, args.groupResourceProfileId,resultHandler);
+      public void start(I iface, getBatchQueueResourcePolicy_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException {
+        iface.getBatchQueueResourcePolicy(args.authzToken, args.resourcePolicyId,resultHandler);
       }
     }
 
-    public static class getGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayGroups_args, org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> {
-      public getGatewayGroups() {
-        super("getGatewayGroups");
+    public static class getGroupComputeResourcePrefList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePrefList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> {
+      public getGroupComputeResourcePrefList() {
+        super("getGroupComputeResourcePrefList");
       }
 
-      public getGatewayGroups_args getEmptyArgsInstance() {
-        return new getGatewayGroups_args();
+      public getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePrefList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups o) {
-            getGatewayGroups_result result = new getGatewayGroups_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> o) {
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37656,7 +37801,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getGatewayGroups_result result = new getGatewayGroups_result();
+            getGroupComputeResourcePrefList_result result = new getGroupComputeResourcePrefList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37700,25 +37845,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException {
-        iface.getGatewayGroups(args.authzToken,resultHandler);
+      public void start(I iface, getGroupComputeResourcePrefList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePrefList(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class getParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParser_args, org.apache.airavata.model.appcatalog.parser.Parser> {
-      public getParser() {
-        super("getParser");
+    public static class getGroupBatchQueueResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupBatchQueueResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> {
+      public getGroupBatchQueueResourcePolicyList() {
+        super("getGroupBatchQueueResourcePolicyList");
       }
 
-      public getParser_args getEmptyArgsInstance() {
-        return new getParser_args();
+      public getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
+        return new getGroupBatchQueueResourcePolicyList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.Parser o) {
-            getParser_result result = new getParser_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> o) {
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37733,7 +37878,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParser_result result = new getParser_result();
+            getGroupBatchQueueResourcePolicyList_result result = new getGroupBatchQueueResourcePolicyList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37777,25 +37922,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getParser_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> resultHandler) throws org.apache.thrift.TException {
-        iface.getParser(args.authzToken, args.parserId, args.gatewayId,resultHandler);
+      public void start(I iface, getGroupBatchQueueResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupBatchQueueResourcePolicyList(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class saveParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParser_args, java.lang.String> {
-      public saveParser() {
-        super("saveParser");
+    public static class getGroupComputeResourcePolicyList<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroupComputeResourcePolicyList_args, java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> {
+      public getGroupComputeResourcePolicyList() {
+        super("getGroupComputeResourcePolicyList");
       }
 
-      public saveParser_args getEmptyArgsInstance() {
-        return new saveParser_args();
+      public getGroupComputeResourcePolicyList_args getEmptyArgsInstance() {
+        return new getGroupComputeResourcePolicyList_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            saveParser_result result = new saveParser_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> o) {
+            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37810,7 +37955,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            saveParser_result result = new saveParser_result();
+            getGroupComputeResourcePolicyList_result result = new getGroupComputeResourcePolicyList_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37854,25 +37999,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, saveParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.saveParser(args.authzToken, args.parser,resultHandler);
+      public void start(I iface, getGroupComputeResourcePolicyList_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException {
+        iface.getGroupComputeResourcePolicyList(args.authzToken, args.groupResourceProfileId,resultHandler);
       }
     }
 
-    public static class listAllParsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsers_args, java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> {
-      public listAllParsers() {
-        super("listAllParsers");
+    public static class getGatewayGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGatewayGroups_args, org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> {
+      public getGatewayGroups() {
+        super("getGatewayGroups");
       }
 
-      public listAllParsers_args getEmptyArgsInstance() {
-        return new listAllParsers_args();
+      public getGatewayGroups_args getEmptyArgsInstance() {
+        return new getGatewayGroups_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.Parser> o) {
-            listAllParsers_result result = new listAllParsers_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups o) {
+            getGatewayGroups_result result = new getGatewayGroups_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -37887,7 +38032,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            listAllParsers_result result = new listAllParsers_result();
+            getGatewayGroups_result result = new getGatewayGroups_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -37931,27 +38076,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, listAllParsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> resultHandler) throws org.apache.thrift.TException {
-        iface.listAllParsers(args.authzToken, args.gatewayId,resultHandler);
+      public void start(I iface, getGatewayGroups_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException {
+        iface.getGatewayGroups(args.authzToken,resultHandler);
       }
     }
 
-    public static class removeParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParser_args, java.lang.Boolean> {
-      public removeParser() {
-        super("removeParser");
+    public static class getParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParser_args, org.apache.airavata.model.appcatalog.parser.Parser> {
+      public getParser() {
+        super("getParser");
       }
 
-      public removeParser_args getEmptyArgsInstance() {
-        return new removeParser_args();
+      public getParser_args getEmptyArgsInstance() {
+        return new getParser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeParser_result result = new removeParser_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.Parser o) {
+            getParser_result result = new getParser_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -37965,7 +38109,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeParser_result result = new removeParser_result();
+            getParser_result result = new getParser_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -38009,25 +38153,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeParser(args.authzToken, args.parserId, args.gatewayId,resultHandler);
+      public void start(I iface, getParser_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.Parser> resultHandler) throws org.apache.thrift.TException {
+        iface.getParser(args.authzToken, args.parserId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class getParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplate_args, org.apache.airavata.model.appcatalog.parser.ParsingTemplate> {
-      public getParsingTemplate() {
-        super("getParsingTemplate");
+    public static class saveParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParser_args, java.lang.String> {
+      public saveParser() {
+        super("saveParser");
       }
 
-      public getParsingTemplate_args getEmptyArgsInstance() {
-        return new getParsingTemplate_args();
+      public saveParser_args getEmptyArgsInstance() {
+        return new saveParser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>() { 
-          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParsingTemplate o) {
-            getParsingTemplate_result result = new getParsingTemplate_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            saveParser_result result = new saveParser_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -38042,7 +38186,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParsingTemplate_result result = new getParsingTemplate_result();
+            saveParser_result result = new saveParser_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -38086,25 +38230,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> resultHandler) throws org.apache.thrift.TException {
-        iface.getParsingTemplate(args.authzToken, args.templateId, args.gatewayId,resultHandler);
+      public void start(I iface, saveParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.saveParser(args.authzToken, args.parser,resultHandler);
       }
     }
 
-    public static class getParsingTemplatesForExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplatesForExperiment_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
-      public getParsingTemplatesForExperiment() {
-        super("getParsingTemplatesForExperiment");
+    public static class listAllParsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsers_args, java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> {
+      public listAllParsers() {
+        super("listAllParsers");
       }
 
-      public getParsingTemplatesForExperiment_args getEmptyArgsInstance() {
-        return new getParsingTemplatesForExperiment_args();
+      public listAllParsers_args getEmptyArgsInstance() {
+        return new listAllParsers_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>>() { 
-          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> o) {
-            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.Parser> o) {
+            listAllParsers_result result = new listAllParsers_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -38119,7 +38263,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
+            listAllParsers_result result = new listAllParsers_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -38163,26 +38307,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getParsingTemplatesForExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> resultHandler) throws org.apache.thrift.TException {
-        iface.getParsingTemplatesForExperiment(args.authzToken, args.experimentId, args.gatewayId,resultHandler);
+      public void start(I iface, listAllParsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.Parser>> resultHandler) throws org.apache.thrift.TException {
+        iface.listAllParsers(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class saveParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParsingTemplate_args, java.lang.String> {
-      public saveParsingTemplate() {
-        super("saveParsingTemplate");
+    public static class removeParser<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParser_args, java.lang.Boolean> {
+      public removeParser() {
+        super("removeParser");
       }
 
-      public saveParsingTemplate_args getEmptyArgsInstance() {
-        return new saveParsingTemplate_args();
+      public removeParser_args getEmptyArgsInstance() {
+        return new removeParser_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
-          public void onComplete(java.lang.String o) {
-            saveParsingTemplate_result result = new saveParsingTemplate_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeParser_result result = new removeParser_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -38196,7 +38341,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            saveParsingTemplate_result result = new saveParsingTemplate_result();
+            removeParser_result result = new removeParser_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -38240,27 +38385,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, saveParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.saveParsingTemplate(args.authzToken, args.parsingTemplate,resultHandler);
+      public void start(I iface, removeParser_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeParser(args.authzToken, args.parserId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class removeParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParsingTemplate_args, java.lang.Boolean> {
-      public removeParsingTemplate() {
-        super("removeParsingTemplate");
+    public static class getParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplate_args, org.apache.airavata.model.appcatalog.parser.ParsingTemplate> {
+      public getParsingTemplate() {
+        super("getParsingTemplate");
       }
 
-      public removeParsingTemplate_args getEmptyArgsInstance() {
-        return new removeParsingTemplate_args();
+      public getParsingTemplate_args getEmptyArgsInstance() {
+        return new getParsingTemplate_args();
       }
 
-      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
-          public void onComplete(java.lang.Boolean o) {
-            removeParsingTemplate_result result = new removeParsingTemplate_result();
+        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>() { 
+          public void onComplete(org.apache.airavata.model.appcatalog.parser.ParsingTemplate o) {
+            getParsingTemplate_result result = new getParsingTemplate_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
             } catch (org.apache.thrift.transport.TTransportException e) {
@@ -38274,7 +38418,7 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            removeParsingTemplate_result result = new removeParsingTemplate_result();
+            getParsingTemplate_result result = new getParsingTemplate_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -38318,25 +38462,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, removeParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.removeParsingTemplate(args.authzToken, args.templateId, args.gatewayId,resultHandler);
+      public void start(I iface, getParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> resultHandler) throws org.apache.thrift.TException {
+        iface.getParsingTemplate(args.authzToken, args.templateId, args.gatewayId,resultHandler);
       }
     }
 
-    public static class listAllParsingTemplates<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsingTemplates_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
-      public listAllParsingTemplates() {
-        super("listAllParsingTemplates");
+    public static class getParsingTemplatesForExperiment<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParsingTemplatesForExperiment_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
+      public getParsingTemplatesForExperiment() {
+        super("getParsingTemplatesForExperiment");
       }
 
-      public listAllParsingTemplates_args getEmptyArgsInstance() {
-        return new listAllParsingTemplates_args();
+      public getParsingTemplatesForExperiment_args getEmptyArgsInstance() {
+        return new getParsingTemplatesForExperiment_args();
       }
 
       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>>() { 
           public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> o) {
-            listAllParsingTemplates_result result = new listAllParsingTemplates_result();
+            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
             result.success = o;
             try {
               fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -38351,7 +38495,239 @@ public class Airavata {
           public void onError(java.lang.Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
-            listAllParsingTemplates_result result = new listAllParsingTemplates_result();
+            getParsingTemplatesForExperiment_result result = new getParsingTemplatesForExperiment_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, getParsingTemplatesForExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> resultHandler) throws org.apache.thrift.TException {
+        iface.getParsingTemplatesForExperiment(args.authzToken, args.experimentId, args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class saveParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, saveParsingTemplate_args, java.lang.String> {
+      public saveParsingTemplate() {
+        super("saveParsingTemplate");
+      }
+
+      public saveParsingTemplate_args getEmptyArgsInstance() {
+        return new saveParsingTemplate_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
+          public void onComplete(java.lang.String o) {
+            saveParsingTemplate_result result = new saveParsingTemplate_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            saveParsingTemplate_result result = new saveParsingTemplate_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, saveParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+        iface.saveParsingTemplate(args.authzToken, args.parsingTemplate,resultHandler);
+      }
+    }
+
+    public static class removeParsingTemplate<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, removeParsingTemplate_args, java.lang.Boolean> {
+      public removeParsingTemplate() {
+        super("removeParsingTemplate");
+      }
+
+      public removeParsingTemplate_args getEmptyArgsInstance() {
+        return new removeParsingTemplate_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
+          public void onComplete(java.lang.Boolean o) {
+            removeParsingTemplate_result result = new removeParsingTemplate_result();
+            result.success = o;
+            result.setSuccessIsSet(true);
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            removeParsingTemplate_result result = new removeParsingTemplate_result();
+            if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
+              result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
+              result.setIreIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
+              result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
+              result.setAceIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
+              result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
+              result.setAseIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
+              result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
+              result.setAeIsSet(true);
+              msg = result;
+            } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+              _LOGGER.error("TTransportException inside handler", e);
+              fb.close();
+              return;
+            } else if (e instanceof org.apache.thrift.TApplicationException) {
+              _LOGGER.error("TApplicationException inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TApplicationException)e;
+            } else {
+              _LOGGER.error("Exception inside handler", e);
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+            } catch (java.lang.Exception ex) {
+              _LOGGER.error("Exception writing to internal frame buffer", ex);
+              fb.close();
+            }
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, removeParsingTemplate_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+        iface.removeParsingTemplate(args.authzToken, args.templateId, args.gatewayId,resultHandler);
+      }
+    }
+
+    public static class listAllParsingTemplates<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, listAllParsingTemplates_args, java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> {
+      public listAllParsingTemplates() {
+        super("listAllParsingTemplates");
+      }
+
+      public listAllParsingTemplates_args getEmptyArgsInstance() {
+        return new listAllParsingTemplates_args();
+      }
+
+      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate>>() { 
+          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.parser.ParsingTemplate> o) {
+            listAllParsingTemplates_result result = new listAllParsingTemplates_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+            } catch (org.apache.thrift.transport.TTransportException e) {
+              _LOGGER.error("TTransportException writing to internal frame buffer", e);
+              fb.close();
+            } catch (java.lang.Exception e) {
+              _LOGGER.error("Exception writing to internal frame buffer", e);
+              onError(e);
+            }
+          }
+          public void onError(java.lang.Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TSerializable msg;
+            listAllParsingTemplates_result result = new listAllParsingTemplates_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
               result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
               result.setIreIsSet(true);
@@ -101221,14 +101597,2846 @@ public class Airavata {
         }
         break;
 
-      case PNFE:
-        if (value == null) {
-          unsetPnfe();
-        } else {
-          setPnfe((org.apache.airavata.model.error.ProjectNotFoundException)value);
-        }
-        break;
-
+      case PNFE:
+        if (value == null) {
+          unsetPnfe();
+        } else {
+          setPnfe((org.apache.airavata.model.error.ProjectNotFoundException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case IRE:
+        return getIre();
+
+      case ENF:
+        return getEnf();
+
+      case ACE:
+        return getAce();
+
+      case ASE:
+        return getAse();
+
+      case AE:
+        return getAe();
+
+      case PNFE:
+        return getPnfe();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case IRE:
+        return isSetIre();
+      case ENF:
+        return isSetEnf();
+      case ACE:
+        return isSetAce();
+      case ASE:
+        return isSetAse();
+      case AE:
+        return isSetAe();
+      case PNFE:
+        return isSetPnfe();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof cloneExperimentByAdmin_result)
+        return this.equals((cloneExperimentByAdmin_result)that);
+      return false;
+    }
+
+    public boolean equals(cloneExperimentByAdmin_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_ire = true && this.isSetIre();
+      boolean that_present_ire = true && that.isSetIre();
+      if (this_present_ire || that_present_ire) {
+        if (!(this_present_ire && that_present_ire))
+          return false;
+        if (!this.ire.equals(that.ire))
+          return false;
+      }
+
+      boolean this_present_enf = true && this.isSetEnf();
+      boolean that_present_enf = true && that.isSetEnf();
+      if (this_present_enf || that_present_enf) {
+        if (!(this_present_enf && that_present_enf))
+          return false;
+        if (!this.enf.equals(that.enf))
+          return false;
+      }
+
+      boolean this_present_ace = true && this.isSetAce();
+      boolean that_present_ace = true && that.isSetAce();
+      if (this_present_ace || that_present_ace) {
+        if (!(this_present_ace && that_present_ace))
+          return false;
+        if (!this.ace.equals(that.ace))
+          return false;
+      }
+
+      boolean this_present_ase = true && this.isSetAse();
+      boolean that_present_ase = true && that.isSetAse();
+      if (this_present_ase || that_present_ase) {
+        if (!(this_present_ase && that_present_ase))
+          return false;
+        if (!this.ase.equals(that.ase))
+          return false;
+      }
+
+      boolean this_present_ae = true && this.isSetAe();
+      boolean that_present_ae = true && that.isSetAe();
+      if (this_present_ae || that_present_ae) {
+        if (!(this_present_ae && that_present_ae))
+          return false;
+        if (!this.ae.equals(that.ae))
+          return false;
+      }
+
+      boolean this_present_pnfe = true && this.isSetPnfe();
+      boolean that_present_pnfe = true && that.isSetPnfe();
+      if (this_present_pnfe || that_present_pnfe) {
+        if (!(this_present_pnfe && that_present_pnfe))
+          return false;
+        if (!this.pnfe.equals(that.pnfe))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
+      if (isSetIre())
+        hashCode = hashCode * 8191 + ire.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
+      if (isSetEnf())
+        hashCode = hashCode * 8191 + enf.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
+      if (isSetAce())
+        hashCode = hashCode * 8191 + ace.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAse()) ? 131071 : 524287);
+      if (isSetAse())
+        hashCode = hashCode * 8191 + ase.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAe()) ? 131071 : 524287);
+      if (isSetAe())
+        hashCode = hashCode * 8191 + ae.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetPnfe()) ? 131071 : 524287);
+      if (isSetPnfe())
+        hashCode = hashCode * 8191 + pnfe.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(cloneExperimentByAdmin_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetIre()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ire, other.ire);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetEnf()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAce()).compareTo(other.isSetAce());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAce()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ace, other.ace);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAse()).compareTo(other.isSetAse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ase, other.ase);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ae, other.ae);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetPnfe()).compareTo(other.isSetPnfe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetPnfe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pnfe, other.pnfe);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperimentByAdmin_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ire:");
+      if (this.ire == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ire);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("enf:");
+      if (this.enf == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.enf);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ace:");
+      if (this.ace == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ace);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ase:");
+      if (this.ase == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ase);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ae:");
+      if (this.ae == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ae);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("pnfe:");
+      if (this.pnfe == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.pnfe);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class cloneExperimentByAdmin_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_resultStandardScheme getScheme() {
+        return new cloneExperimentByAdmin_resultStandardScheme();
+      }
+    }
+
+    private static class cloneExperimentByAdmin_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperimentByAdmin_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // IRE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+                struct.ire.read(iprot);
+                struct.setIreIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // ENF
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+                struct.enf.read(iprot);
+                struct.setEnfIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // ACE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+                struct.ace.read(iprot);
+                struct.setAceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // ASE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+                struct.ase.read(iprot);
+                struct.setAseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 5: // AE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+                struct.ae.read(iprot);
+                struct.setAeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 6: // PNFE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
+                struct.pnfe.read(iprot);
+                struct.setPnfeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          oprot.writeString(struct.success);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ire != null) {
+          oprot.writeFieldBegin(IRE_FIELD_DESC);
+          struct.ire.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.enf != null) {
+          oprot.writeFieldBegin(ENF_FIELD_DESC);
+          struct.enf.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ace != null) {
+          oprot.writeFieldBegin(ACE_FIELD_DESC);
+          struct.ace.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ase != null) {
+          oprot.writeFieldBegin(ASE_FIELD_DESC);
+          struct.ase.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ae != null) {
+          oprot.writeFieldBegin(AE_FIELD_DESC);
+          struct.ae.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.pnfe != null) {
+          oprot.writeFieldBegin(PNFE_FIELD_DESC);
+          struct.pnfe.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class cloneExperimentByAdmin_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public cloneExperimentByAdmin_resultTupleScheme getScheme() {
+        return new cloneExperimentByAdmin_resultTupleScheme();
+      }
+    }
+
+    private static class cloneExperimentByAdmin_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperimentByAdmin_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetIre()) {
+          optionals.set(1);
+        }
+        if (struct.isSetEnf()) {
+          optionals.set(2);
+        }
+        if (struct.isSetAce()) {
+          optionals.set(3);
+        }
+        if (struct.isSetAse()) {
+          optionals.set(4);
+        }
+        if (struct.isSetAe()) {
+          optionals.set(5);
+        }
+        if (struct.isSetPnfe()) {
+          optionals.set(6);
+        }
+        oprot.writeBitSet(optionals, 7);
+        if (struct.isSetSuccess()) {
+          oprot.writeString(struct.success);
+        }
+        if (struct.isSetIre()) {
+          struct.ire.write(oprot);
+        }
+        if (struct.isSetEnf()) {
+          struct.enf.write(oprot);
+        }
+        if (struct.isSetAce()) {
+          struct.ace.write(oprot);
+        }
+        if (struct.isSetAse()) {
+          struct.ase.write(oprot);
+        }
+        if (struct.isSetAe()) {
+          struct.ae.write(oprot);
+        }
+        if (struct.isSetPnfe()) {
+          struct.pnfe.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(7);
+        if (incoming.get(0)) {
+          struct.success = iprot.readString();
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+          struct.ire.read(iprot);
+          struct.setIreIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+          struct.enf.read(iprot);
+          struct.setEnfIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+          struct.ace.read(iprot);
+          struct.setAceIsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+          struct.ase.read(iprot);
+          struct.setAseIsSet(true);
+        }
+        if (incoming.get(5)) {
+          struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+          struct.ae.read(iprot);
+          struct.setAeIsSet(true);
+        }
+        if (incoming.get(6)) {
+          struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
+          struct.pnfe.read(iprot);
+          struct.setPnfeIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class terminateExperiment_args implements org.apache.thrift.TBase<terminateExperiment_args, terminateExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_args");
+
+    private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_argsTupleSchemeFactory();
+
+    public org.apache.airavata.model.security.AuthzToken authzToken; // required
+    public java.lang.String airavataExperimentId; // required
+    public java.lang.String gatewayId; // 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 {
+      AUTHZ_TOKEN((short)1, "authzToken"),
+      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId"),
+      GATEWAY_ID((short)3, "gatewayId");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // AUTHZ_TOKEN
+            return AUTHZ_TOKEN;
+          case 2: // AIRAVATA_EXPERIMENT_ID
+            return AIRAVATA_EXPERIMENT_ID;
+          case 3: // GATEWAY_ID
+            return GATEWAY_ID;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
+      tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_args.class, metaDataMap);
+    }
+
+    public terminateExperiment_args() {
+    }
+
+    public terminateExperiment_args(
+      org.apache.airavata.model.security.AuthzToken authzToken,
+      java.lang.String airavataExperimentId,
+      java.lang.String gatewayId)
+    {
+      this();
+      this.authzToken = authzToken;
+      this.airavataExperimentId = airavataExperimentId;
+      this.gatewayId = gatewayId;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public terminateExperiment_args(terminateExperiment_args other) {
+      if (other.isSetAuthzToken()) {
+        this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
+      }
+      if (other.isSetAiravataExperimentId()) {
+        this.airavataExperimentId = other.airavataExperimentId;
+      }
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
+    }
+
+    public terminateExperiment_args deepCopy() {
+      return new terminateExperiment_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.authzToken = null;
+      this.airavataExperimentId = null;
+      this.gatewayId = null;
+    }
+
+    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+      return this.authzToken;
+    }
+
+    public terminateExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+      this.authzToken = authzToken;
+      return this;
+    }
+
+    public void unsetAuthzToken() {
+      this.authzToken = null;
+    }
+
+    /** Returns true if field authzToken is set (has been assigned a value) and false otherwise */
+    public boolean isSetAuthzToken() {
+      return this.authzToken != null;
+    }
+
+    public void setAuthzTokenIsSet(boolean value) {
+      if (!value) {
+        this.authzToken = null;
+      }
+    }
+
+    public java.lang.String getAiravataExperimentId() {
+      return this.airavataExperimentId;
+    }
+
+    public terminateExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
+      this.airavataExperimentId = airavataExperimentId;
+      return this;
+    }
+
+    public void unsetAiravataExperimentId() {
+      this.airavataExperimentId = null;
+    }
+
+    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAiravataExperimentId() {
+      return this.airavataExperimentId != null;
+    }
+
+    public void setAiravataExperimentIdIsSet(boolean value) {
+      if (!value) {
+        this.airavataExperimentId = null;
+      }
+    }
+
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public terminateExperiment_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
+      return this;
+    }
+
+    public void unsetGatewayId() {
+      this.gatewayId = null;
+    }
+
+    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
+    }
+
+    public void setGatewayIdIsSet(boolean value) {
+      if (!value) {
+        this.gatewayId = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        if (value == null) {
+          unsetAuthzToken();
+        } else {
+          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
+        }
+        break;
+
+      case AIRAVATA_EXPERIMENT_ID:
+        if (value == null) {
+          unsetAiravataExperimentId();
+        } else {
+          setAiravataExperimentId((java.lang.String)value);
+        }
+        break;
+
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((java.lang.String)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return getAuthzToken();
+
+      case AIRAVATA_EXPERIMENT_ID:
+        return getAiravataExperimentId();
+
+      case GATEWAY_ID:
+        return getGatewayId();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return isSetAuthzToken();
+      case AIRAVATA_EXPERIMENT_ID:
+        return isSetAiravataExperimentId();
+      case GATEWAY_ID:
+        return isSetGatewayId();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof terminateExperiment_args)
+        return this.equals((terminateExperiment_args)that);
+      return false;
+    }
+
+    public boolean equals(terminateExperiment_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_authzToken = true && this.isSetAuthzToken();
+      boolean that_present_authzToken = true && that.isSetAuthzToken();
+      if (this_present_authzToken || that_present_authzToken) {
+        if (!(this_present_authzToken && that_present_authzToken))
+          return false;
+        if (!this.authzToken.equals(that.authzToken))
+          return false;
+      }
+
+      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
+      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
+      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
+        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
+          return false;
+        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
+          return false;
+      }
+
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
+          return false;
+        if (!this.gatewayId.equals(that.gatewayId))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetAuthzToken()) ? 131071 : 524287);
+      if (isSetAuthzToken())
+        hashCode = hashCode * 8191 + authzToken.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
+      if (isSetAiravataExperimentId())
+        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(terminateExperiment_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAuthzToken()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authzToken, other.authzToken);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAiravataExperimentId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("terminateExperiment_args(");
+      boolean first = true;
+
+      sb.append("authzToken:");
+      if (this.authzToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.authzToken);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("airavataExperimentId:");
+      if (this.airavataExperimentId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.airavataExperimentId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (authzToken == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (authzToken != null) {
+        authzToken.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class terminateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_argsStandardScheme getScheme() {
+        return new terminateExperiment_argsStandardScheme();
+      }
+    }
+
+    private static class terminateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<terminateExperiment_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // AUTHZ_TOKEN
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+                struct.authzToken.read(iprot);
+                struct.setAuthzTokenIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // AIRAVATA_EXPERIMENT_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.airavataExperimentId = iprot.readString();
+                struct.setAiravataExperimentIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.authzToken != null) {
+          oprot.writeFieldBegin(AUTHZ_TOKEN_FIELD_DESC);
+          struct.authzToken.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.airavataExperimentId != null) {
+          oprot.writeFieldBegin(AIRAVATA_EXPERIMENT_ID_FIELD_DESC);
+          oprot.writeString(struct.airavataExperimentId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class terminateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_argsTupleScheme getScheme() {
+        return new terminateExperiment_argsTupleScheme();
+      }
+    }
+
+    private static class terminateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<terminateExperiment_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken.write(oprot);
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetAiravataExperimentId()) {
+          optionals.set(0);
+        }
+        if (struct.isSetGatewayId()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetAiravataExperimentId()) {
+          oprot.writeString(struct.airavataExperimentId);
+        }
+        if (struct.isSetGatewayId()) {
+          oprot.writeString(struct.gatewayId);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+        struct.authzToken.read(iprot);
+        struct.setAuthzTokenIsSet(true);
+        java.util.BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          struct.airavataExperimentId = iprot.readString();
+          struct.setAiravataExperimentIdIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.gatewayId = iprot.readString();
+          struct.setGatewayIdIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class terminateExperiment_result implements org.apache.thrift.TBase<terminateExperiment_result, terminateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_result");
+
+    private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
+    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_resultTupleSchemeFactory();
+
+    public org.apache.airavata.model.error.InvalidRequestException ire; // required
+    public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
+    public org.apache.airavata.model.error.AiravataClientException ace; // required
+    public org.apache.airavata.model.error.AiravataSystemException ase; // required
+    public org.apache.airavata.model.error.AuthorizationException ae; // 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 {
+      IRE((short)1, "ire"),
+      ENF((short)2, "enf"),
+      ACE((short)3, "ace"),
+      ASE((short)4, "ase"),
+      AE((short)5, "ae");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // IRE
+            return IRE;
+          case 2: // ENF
+            return ENF;
+          case 3: // ACE
+            return ACE;
+          case 4: // ASE
+            return ASE;
+          case 5: // AE
+            return AE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
+      tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ExperimentNotFoundException.class)));
+      tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataClientException.class)));
+      tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataSystemException.class)));
+      tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_result.class, metaDataMap);
+    }
+
+    public terminateExperiment_result() {
+    }
+
+    public terminateExperiment_result(
+      org.apache.airavata.model.error.InvalidRequestException ire,
+      org.apache.airavata.model.error.ExperimentNotFoundException enf,
+      org.apache.airavata.model.error.AiravataClientException ace,
+      org.apache.airavata.model.error.AiravataSystemException ase,
+      org.apache.airavata.model.error.AuthorizationException ae)
+    {
+      this();
+      this.ire = ire;
+      this.enf = enf;
+      this.ace = ace;
+      this.ase = ase;
+      this.ae = ae;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public terminateExperiment_result(terminateExperiment_result other) {
+      if (other.isSetIre()) {
+        this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
+      }
+      if (other.isSetEnf()) {
+        this.enf = new org.apache.airavata.model.error.ExperimentNotFoundException(other.enf);
+      }
+      if (other.isSetAce()) {
+        this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
+      }
+      if (other.isSetAse()) {
+        this.ase = new org.apache.airavata.model.error.AiravataSystemException(other.ase);
+      }
+      if (other.isSetAe()) {
+        this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
+      }
+    }
+
+    public terminateExperiment_result deepCopy() {
+      return new terminateExperiment_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.ire = null;
+      this.enf = null;
+      this.ace = null;
+      this.ase = null;
+      this.ae = null;
+    }
+
+    public org.apache.airavata.model.error.InvalidRequestException getIre() {
+      return this.ire;
+    }
+
+    public terminateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+      this.ire = ire;
+      return this;
+    }
+
+    public void unsetIre() {
+      this.ire = null;
+    }
+
+    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
+    public boolean isSetIre() {
+      return this.ire != null;
+    }
+
+    public void setIreIsSet(boolean value) {
+      if (!value) {
+        this.ire = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.ExperimentNotFoundException getEnf() {
+      return this.enf;
+    }
+
+    public terminateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
+      this.enf = enf;
+      return this;
+    }
+
+    public void unsetEnf() {
+      this.enf = null;
+    }
+
+    /** Returns true if field enf is set (has been assigned a value) and false otherwise */
+    public boolean isSetEnf() {
+      return this.enf != null;
+    }
+
+    public void setEnfIsSet(boolean value) {
+      if (!value) {
+        this.enf = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataClientException getAce() {
+      return this.ace;
+    }
+
+    public terminateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+      this.ace = ace;
+      return this;
+    }
+
+    public void unsetAce() {
+      this.ace = null;
+    }
+
+    /** Returns true if field ace is set (has been assigned a value) and false otherwise */
+    public boolean isSetAce() {
+      return this.ace != null;
+    }
+
+    public void setAceIsSet(boolean value) {
+      if (!value) {
+        this.ace = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataSystemException getAse() {
+      return this.ase;
+    }
+
+    public terminateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+      this.ase = ase;
+      return this;
+    }
+
+    public void unsetAse() {
+      this.ase = null;
+    }
+
+    /** Returns true if field ase is set (has been assigned a value) and false otherwise */
+    public boolean isSetAse() {
+      return this.ase != null;
+    }
+
+    public void setAseIsSet(boolean value) {
+      if (!value) {
+        this.ase = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AuthorizationException getAe() {
+      return this.ae;
+    }
+
+    public terminateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+      this.ae = ae;
+      return this;
+    }
+
+    public void unsetAe() {
+      this.ae = null;
+    }
+
+    /** Returns true if field ae is set (has been assigned a value) and false otherwise */
+    public boolean isSetAe() {
+      return this.ae != null;
+    }
+
+    public void setAeIsSet(boolean value) {
+      if (!value) {
+        this.ae = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case IRE:
+        if (value == null) {
+          unsetIre();
+        } else {
+          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
+        }
+        break;
+
+      case ENF:
+        if (value == null) {
+          unsetEnf();
+        } else {
+          setEnf((org.apache.airavata.model.error.ExperimentNotFoundException)value);
+        }
+        break;
+
+      case ACE:
+        if (value == null) {
+          unsetAce();
+        } else {
+          setAce((org.apache.airavata.model.error.AiravataClientException)value);
+        }
+        break;
+
+      case ASE:
+        if (value == null) {
+          unsetAse();
+        } else {
+          setAse((org.apache.airavata.model.error.AiravataSystemException)value);
+        }
+        break;
+
+      case AE:
+        if (value == null) {
+          unsetAe();
+        } else {
+          setAe((org.apache.airavata.model.error.AuthorizationException)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case IRE:
+        return getIre();
+
+      case ENF:
+        return getEnf();
+
+      case ACE:
+        return getAce();
+
+      case ASE:
+        return getAse();
+
+      case AE:
+        return getAe();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case IRE:
+        return isSetIre();
+      case ENF:
+        return isSetEnf();
+      case ACE:
+        return isSetAce();
+      case ASE:
+        return isSetAse();
+      case AE:
+        return isSetAe();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof terminateExperiment_result)
+        return this.equals((terminateExperiment_result)that);
+      return false;
+    }
+
+    public boolean equals(terminateExperiment_result that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_ire = true && this.isSetIre();
+      boolean that_present_ire = true && that.isSetIre();
+      if (this_present_ire || that_present_ire) {
+        if (!(this_present_ire && that_present_ire))
+          return false;
+        if (!this.ire.equals(that.ire))
+          return false;
+      }
+
+      boolean this_present_enf = true && this.isSetEnf();
+      boolean that_present_enf = true && that.isSetEnf();
+      if (this_present_enf || that_present_enf) {
+        if (!(this_present_enf && that_present_enf))
+          return false;
+        if (!this.enf.equals(that.enf))
+          return false;
+      }
+
+      boolean this_present_ace = true && this.isSetAce();
+      boolean that_present_ace = true && that.isSetAce();
+      if (this_present_ace || that_present_ace) {
+        if (!(this_present_ace && that_present_ace))
+          return false;
+        if (!this.ace.equals(that.ace))
+          return false;
+      }
+
+      boolean this_present_ase = true && this.isSetAse();
+      boolean that_present_ase = true && that.isSetAse();
+      if (this_present_ase || that_present_ase) {
+        if (!(this_present_ase && that_present_ase))
+          return false;
+        if (!this.ase.equals(that.ase))
+          return false;
+      }
+
+      boolean this_present_ae = true && this.isSetAe();
+      boolean that_present_ae = true && that.isSetAe();
+      if (this_present_ae || that_present_ae) {
+        if (!(this_present_ae && that_present_ae))
+          return false;
+        if (!this.ae.equals(that.ae))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
+      if (isSetIre())
+        hashCode = hashCode * 8191 + ire.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
+      if (isSetEnf())
+        hashCode = hashCode * 8191 + enf.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
+      if (isSetAce())
+        hashCode = hashCode * 8191 + ace.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAse()) ? 131071 : 524287);
+      if (isSetAse())
+        hashCode = hashCode * 8191 + ase.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetAe()) ? 131071 : 524287);
+      if (isSetAe())
+        hashCode = hashCode * 8191 + ae.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(terminateExperiment_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetIre()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ire, other.ire);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetEnf()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAce()).compareTo(other.isSetAce());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAce()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ace, other.ace);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAse()).compareTo(other.isSetAse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ase, other.ase);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAe()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ae, other.ae);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+      }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("terminateExperiment_result(");
+      boolean first = true;
+
+      sb.append("ire:");
+      if (this.ire == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ire);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("enf:");
+      if (this.enf == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.enf);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ace:");
+      if (this.ace == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ace);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ase:");
+      if (this.ase == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ase);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("ae:");
+      if (this.ae == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ae);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class terminateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_resultStandardScheme getScheme() {
+        return new terminateExperiment_resultStandardScheme();
+      }
+    }
+
+    private static class terminateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<terminateExperiment_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // IRE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+                struct.ire.read(iprot);
+                struct.setIreIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // ENF
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+                struct.enf.read(iprot);
+                struct.setEnfIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // ACE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+                struct.ace.read(iprot);
+                struct.setAceIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 4: // ASE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+                struct.ase.read(iprot);
+                struct.setAseIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 5: // AE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+                struct.ae.read(iprot);
+                struct.setAeIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.ire != null) {
+          oprot.writeFieldBegin(IRE_FIELD_DESC);
+          struct.ire.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.enf != null) {
+          oprot.writeFieldBegin(ENF_FIELD_DESC);
+          struct.enf.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ace != null) {
+          oprot.writeFieldBegin(ACE_FIELD_DESC);
+          struct.ace.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ase != null) {
+          oprot.writeFieldBegin(ASE_FIELD_DESC);
+          struct.ase.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.ae != null) {
+          oprot.writeFieldBegin(AE_FIELD_DESC);
+          struct.ae.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class terminateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public terminateExperiment_resultTupleScheme getScheme() {
+        return new terminateExperiment_resultTupleScheme();
+      }
+    }
+
+    private static class terminateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<terminateExperiment_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet optionals = new java.util.BitSet();
+        if (struct.isSetIre()) {
+          optionals.set(0);
+        }
+        if (struct.isSetEnf()) {
+          optionals.set(1);
+        }
+        if (struct.isSetAce()) {
+          optionals.set(2);
+        }
+        if (struct.isSetAse()) {
+          optionals.set(3);
+        }
+        if (struct.isSetAe()) {
+          optionals.set(4);
+        }
+        oprot.writeBitSet(optionals, 5);
+        if (struct.isSetIre()) {
+          struct.ire.write(oprot);
+        }
+        if (struct.isSetEnf()) {
+          struct.enf.write(oprot);
+        }
+        if (struct.isSetAce()) {
+          struct.ace.write(oprot);
+        }
+        if (struct.isSetAse()) {
+          struct.ase.write(oprot);
+        }
+        if (struct.isSetAe()) {
+          struct.ae.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        java.util.BitSet incoming = iprot.readBitSet(5);
+        if (incoming.get(0)) {
+          struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+          struct.ire.read(iprot);
+          struct.setIreIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+          struct.enf.read(iprot);
+          struct.setEnfIsSet(true);
+        }
+        if (incoming.get(2)) {
+          struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+          struct.ace.read(iprot);
+          struct.setAceIsSet(true);
+        }
+        if (incoming.get(3)) {
+          struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+          struct.ase.read(iprot);
+          struct.setAseIsSet(true);
+        }
+        if (incoming.get(4)) {
+          struct.ae = new org.apache.airavata.model.error.AuthorizationException();
+          struct.ae.read(iprot);
+          struct.setAeIsSet(true);
+        }
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class registerApplicationModule_args implements org.apache.thrift.TBase<registerApplicationModule_args, registerApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationModule_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationModule_args");
+
+    private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField APPLICATION_MODULE_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationModule", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationModule_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationModule_argsTupleSchemeFactory();
+
+    public org.apache.airavata.model.security.AuthzToken authzToken; // required
+    public java.lang.String gatewayId; // required
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule; // 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 {
+      AUTHZ_TOKEN((short)1, "authzToken"),
+      GATEWAY_ID((short)2, "gatewayId"),
+      APPLICATION_MODULE((short)3, "applicationModule");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // AUTHZ_TOKEN
+            return AUTHZ_TOKEN;
+          case 2: // GATEWAY_ID
+            return GATEWAY_ID;
+          case 3: // APPLICATION_MODULE
+            return APPLICATION_MODULE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.APPLICATION_MODULE, new org.apache.thrift.meta_data.FieldMetaData("applicationModule", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationModule_args.class, metaDataMap);
+    }
+
+    public registerApplicationModule_args() {
+    }
+
+    public registerApplicationModule_args(
+      org.apache.airavata.model.security.AuthzToken authzToken,
+      java.lang.String gatewayId,
+      org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule)
+    {
+      this();
+      this.authzToken = authzToken;
+      this.gatewayId = gatewayId;
+      this.applicationModule = applicationModule;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public registerApplicationModule_args(registerApplicationModule_args other) {
+      if (other.isSetAuthzToken()) {
+        this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
+      }
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
+      }
+      if (other.isSetApplicationModule()) {
+        this.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other.applicationModule);
+      }
+    }
+
+    public registerApplicationModule_args deepCopy() {
+      return new registerApplicationModule_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.authzToken = null;
+      this.gatewayId = null;
+      this.applicationModule = null;
+    }
+
+    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+      return this.authzToken;
+    }
+
+    public registerApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+      this.authzToken = authzToken;
+      return this;
+    }
+
+    public void unsetAuthzToken() {
+      this.authzToken = null;
+    }
+
+    /** Returns true if field authzToken is set (has been assigned a value) and false otherwise */
+    public boolean isSetAuthzToken() {
+      return this.authzToken != null;
+    }
+
+    public void setAuthzTokenIsSet(boolean value) {
+      if (!value) {
+        this.authzToken = null;
+      }
+    }
+
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
+    }
+
+    public registerApplicationModule_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
+      return this;
+    }
+
+    public void unsetGatewayId() {
+      this.gatewayId = null;
+    }
+
+    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
+    }
+
+    public void setGatewayIdIsSet(boolean value) {
+      if (!value) {
+        this.gatewayId = null;
+      }
+    }
+
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getApplicationModule() {
+      return this.applicationModule;
+    }
+
+    public registerApplicationModule_args setApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) {
+      this.applicationModule = applicationModule;
+      return this;
+    }
+
+    public void unsetApplicationModule() {
+      this.applicationModule = null;
+    }
+
+    /** Returns true if field applicationModule is set (has been assigned a value) and false otherwise */
+    public boolean isSetApplicationModule() {
+      return this.applicationModule != null;
+    }
+
+    public void setApplicationModuleIsSet(boolean value) {
+      if (!value) {
+        this.applicationModule = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        if (value == null) {
+          unsetAuthzToken();
+        } else {
+          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
+        }
+        break;
+
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayId();
+        } else {
+          setGatewayId((java.lang.String)value);
+        }
+        break;
+
+      case APPLICATION_MODULE:
+        if (value == null) {
+          unsetApplicationModule();
+        } else {
+          setApplicationModule((org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)value);
+        }
+        break;
+
+      }
+    }
+
+    public java.lang.Object getFieldValue(_Fields field) {
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return getAuthzToken();
+
+      case GATEWAY_ID:
+        return getGatewayId();
+
+      case APPLICATION_MODULE:
+        return getApplicationModule();
+
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new java.lang.IllegalArgumentException();
+      }
+
+      switch (field) {
+      case AUTHZ_TOKEN:
+        return isSetAuthzToken();
+      case GATEWAY_ID:
+        return isSetGatewayId();
+      case APPLICATION_MODULE:
+        return isSetApplicationModule();
+      }
+      throw new java.lang.IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(java.lang.Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof registerApplicationModule_args)
+        return this.equals((registerApplicationModule_args)that);
+      return false;
+    }
+
+    public boolean equals(registerApplicationModule_args that) {
+      if (that == null)
+        return false;
+      if (this == that)
+        return true;
+
+      boolean this_present_authzToken = true && this.isSetAuthzToken();
+      boolean that_present_authzToken = true && that.isSetAuthzToken();
+      if (this_present_authzToken || that_present_authzToken) {
+        if (!(this_present_authzToken && that_present_authzToken))
+          return false;
+        if (!this.authzToken.equals(that.authzToken))
+          return false;
+      }
+
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
+          return false;
+        if (!this.gatewayId.equals(that.gatewayId))
+          return false;
+      }
+
+      boolean this_present_applicationModule = true && this.isSetApplicationModule();
+      boolean that_present_applicationModule = true && that.isSetApplicationModule();
+      if (this_present_applicationModule || that_present_applicationModule) {
+        if (!(this_present_applicationModule && that_present_applicationModule))
+          return false;
+        if (!this.applicationModule.equals(that.applicationModule))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      int hashCode = 1;
+
+      hashCode = hashCode * 8191 + ((isSetAuthzToken()) ? 131071 : 524287);
+      if (isSetAuthzToken())
+        hashCode = hashCode * 8191 + authzToken.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
+
+      hashCode = hashCode * 8191 + ((isSetApplicationModule()) ? 131071 : 524287);
+      if (isSetApplicationModule())
+        hashCode = hashCode * 8191 + applicationModule.hashCode();
+
+      return hashCode;
+    }
+
+    @Override
+    public int compareTo(registerApplicationModule_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = java.lang.Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetAuthzToken()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authzToken, other.authzToken);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = java.lang.Boolean.valueOf(isSetApplicationModule()).compareTo(other.isSetApplicationModule());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetApplicationModule()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationModule, other.applicationModule);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      scheme(iprot).read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      scheme(oprot).write(oprot, this);
+    }
+
+    @Override
+    public java.lang.String toString() {
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationModule_args(");
+      boolean first = true;
+
+      sb.append("authzToken:");
+      if (this.authzToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.authzToken);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("applicationModule:");
+      if (this.applicationModule == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationModule);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (authzToken == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
+      }
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      }
+      if (applicationModule == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationModule' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (authzToken != null) {
+        authzToken.validate();
+      }
+      if (applicationModule != null) {
+        applicationModule.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class registerApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationModule_argsStandardScheme getScheme() {
+        return new registerApplicationModule_argsStandardScheme();
+      }
+    }
+
+    private static class registerApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationModule_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // AUTHZ_TOKEN
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+                struct.authzToken.read(iprot);
+                struct.setAuthzTokenIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // APPLICATION_MODULE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+                struct.applicationModule.read(iprot);
+                struct.setApplicationModuleIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+
+        // check for required fields of primitive type, which can't be checked in the validate method
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.authzToken != null) {
+          oprot.writeFieldBegin(AUTHZ_TOKEN_FIELD_DESC);
+          struct.authzToken.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.applicationModule != null) {
+          oprot.writeFieldBegin(APPLICATION_MODULE_FIELD_DESC);
+          struct.applicationModule.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class registerApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationModule_argsTupleScheme getScheme() {
+        return new registerApplicationModule_argsTupleScheme();
+      }
+    }
+
+    private static class registerApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<registerApplicationModule_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken.write(oprot);
+        oprot.writeString(struct.gatewayId);
+        struct.applicationModule.write(oprot);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+        struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
+        struct.authzToken.read(iprot);
+        struct.setAuthzTokenIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
+        struct.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+        struct.applicationModule.read(iprot);
+        struct.setApplicationModuleIsSet(true);
+      }
+    }
+
+    private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
+      return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+    }
+  }
+
+  public static class registerApplicationModule_result implements org.apache.thrift.TBase<registerApplicationModule_result, registerApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationModule_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationModule_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
+
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationModule_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationModule_resultTupleSchemeFactory();
+
+    public java.lang.String success; // required
+    public org.apache.airavata.model.error.InvalidRequestException ire; // required
+    public org.apache.airavata.model.error.AiravataClientException ace; // required
+    public org.apache.airavata.model.error.AiravataSystemException ase; // required
+    public org.apache.airavata.model.error.AuthorizationException ae; // 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 {
+      SUCCESS((short)0, "success"),
+      IRE((short)1, "ire"),
+      ACE((short)2, "ace"),
+      ASE((short)3, "ase"),
+      AE((short)4, "ae");
+
+      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+
+      static {
+        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          case 1: // IRE
+            return IRE;
+          case 2: // ACE
+            return ACE;
+          case 3: // ASE
+            return ASE;
+          case 4: // AE
+            return AE;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(java.lang.String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final java.lang.String _fieldName;
+
+      _Fields(short thriftId, java.lang.String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public java.lang.String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
+      tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataClientException.class)));
+      tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataSystemException.class)));
+      tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
+      metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationModule_result.class, metaDataMap);
+    }
+
+    public registerApplicationModule_result() {
+    }
+
+    public registerApplicationModule_result(
+      java.lang.String success,
+      org.apache.airavata.model.error.InvalidRequestException ire,
+      org.apache.airavata.model.error.AiravataClientException ace,
+      org.apache.airavata.model.error.AiravataSystemException ase,
+      org.apache.airavata.model.error.AuthorizationException ae)
+    {
+      this();
+      this.success = success;
+      this.ire = ire;
+      this.ace = ace;
+      this.ase = ase;
+      this.ae = ae;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public registerApplicationModule_result(registerApplicationModule_result other) {
+      if (other.isSetSuccess()) {
+        this.success = other.success;
+      }
+      if (other.isSetIre()) {
+        this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
+      }
+      if (other.isSetAce()) {
+        this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
+      }
+      if (other.isSetAse()) {
+        this.ase = new org.apache.airavata.model.error.AiravataSystemException(other.ase);
+      }
+      if (other.isSetAe()) {
+        this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
+      }
+    }
+
+    public registerApplicationModule_result deepCopy() {
+      return new registerApplicationModule_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.ire = null;
+      this.ace = null;
+      this.ase = null;
+      this.ae = null;
+    }
+
+    public java.lang.String getSuccess() {
+      return this.success;
+    }
+
+    public registerApplicationModule_result setSuccess(java.lang.String success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.InvalidRequestException getIre() {
+      return this.ire;
+    }
+
+    public registerApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+      this.ire = ire;
+      return this;
+    }
+
+    public void unsetIre() {
+      this.ire = null;
+    }
+
+    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
+    public boolean isSetIre() {
+      return this.ire != null;
+    }
+
+    public void setIreIsSet(boolean value) {
+      if (!value) {
+        this.ire = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataClientException getAce() {
+      return this.ace;
+    }
+
+    public registerApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+      this.ace = ace;
+      return this;
+    }
+
+    public void unsetAce() {
+      this.ace = null;
+    }
+
+    /** Returns true if field ace is set (has been assigned a value) and false otherwise */
+    public boolean isSetAce() {
+      return this.ace != null;
+    }
+
+    public void setAceIsSet(boolean value) {
+      if (!value) {
+        this.ace = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AiravataSystemException getAse() {
+      return this.ase;
+    }
+
+    public registerApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+      this.ase = ase;
+      return this;
+    }
+
+    public void unsetAse() {
+      this.ase = null;
+    }
+
+    /** Returns true if field ase is set (has been assigned a value) and false otherwise */
+    public boolean isSetAse() {
+      return this.ase != null;
+    }
+
+    public void setAseIsSet(boolean value) {
+      if (!value) {
+        this.ase = null;
+      }
+    }
+
+    public org.apache.airavata.model.error.AuthorizationException getAe() {
+      return this.ae;
+    }
+
+    public registerApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+      this.ae = ae;
+      return this;
+    }
+
+    public void unsetAe() {
+      this.ae = null;
+    }
+
+    /** Returns true if field ae is set (has been assigned a value) and false otherwise */
+    public boolean isSetAe() {
+      return this.ae != null;
+    }
+
+    public void setAeIsSet(boolean value) {
+      if (!value) {
+        this.ae = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, java.lang.Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((java.lang.String)value);
+        }
+        break;
+
+      case IRE:
+        if (value == null) {
+          unsetIre();
+        } else {
+          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
+        }
+        break;
+
+      case ACE:
+        if (value == null) {
+          unsetAce();
+        } else {
+          setAce((org.apache.airavata.model.error.AiravataClientException)value);
+        }
+        break;
+
+      case ASE:
+        if (value == null) {
+          unsetAse();
+        } else {
+          setAse((org.apache.airavata.model.error.AiravataSystemException)value);
+        }
+        break;
+
+      case AE:
+        if (value == null) {
+          unsetAe();
+        } else {
+          setAe((org.apache.airavata.model.error.AuthorizationException)value);
+        }
+        break;
+
       }
     }
 
@@ -101240,9 +104448,6 @@ public class Airavata {
       case IRE:
         return getIre();
 
-      case ENF:
-        return getEnf();
-
       case ACE:
         return getAce();
 
@@ -101252,9 +104457,6 @@ public class Airavata {
       case AE:
         return getAe();
 
-      case PNFE:
-        return getPnfe();
-
       }
       throw new java.lang.IllegalStateException();
     }
@@ -101270,16 +104472,12 @@ public class Airavata {
         return isSetSuccess();
       case IRE:
         return isSetIre();
-      case ENF:
-        return isSetEnf();
       case ACE:
         return isSetAce();
       case ASE:
         return isSetAse();
       case AE:
         return isSetAe();
-      case PNFE:
-        return isSetPnfe();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -101288,12 +104486,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof cloneExperimentByAdmin_result)
-        return this.equals((cloneExperimentByAdmin_result)that);
+      if (that instanceof registerApplicationModule_result)
+        return this.equals((registerApplicationModule_result)that);
       return false;
     }
 
-    public boolean equals(cloneExperimentByAdmin_result that) {
+    public boolean equals(registerApplicationModule_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -101317,15 +104515,6 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_enf = true && this.isSetEnf();
-      boolean that_present_enf = true && that.isSetEnf();
-      if (this_present_enf || that_present_enf) {
-        if (!(this_present_enf && that_present_enf))
-          return false;
-        if (!this.enf.equals(that.enf))
-          return false;
-      }
-
       boolean this_present_ace = true && this.isSetAce();
       boolean that_present_ace = true && that.isSetAce();
       if (this_present_ace || that_present_ace) {
@@ -101353,15 +104542,6 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_pnfe = true && this.isSetPnfe();
-      boolean that_present_pnfe = true && that.isSetPnfe();
-      if (this_present_pnfe || that_present_pnfe) {
-        if (!(this_present_pnfe && that_present_pnfe))
-          return false;
-        if (!this.pnfe.equals(that.pnfe))
-          return false;
-      }
-
       return true;
     }
 
@@ -101377,10 +104557,6 @@ public class Airavata {
       if (isSetIre())
         hashCode = hashCode * 8191 + ire.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
-      if (isSetEnf())
-        hashCode = hashCode * 8191 + enf.hashCode();
-
       hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
       if (isSetAce())
         hashCode = hashCode * 8191 + ace.hashCode();
@@ -101393,15 +104569,11 @@ public class Airavata {
       if (isSetAe())
         hashCode = hashCode * 8191 + ae.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetPnfe()) ? 131071 : 524287);
-      if (isSetPnfe())
-        hashCode = hashCode * 8191 + pnfe.hashCode();
-
       return hashCode;
     }
 
     @Override
-    public int compareTo(cloneExperimentByAdmin_result other) {
+    public int compareTo(registerApplicationModule_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -101428,16 +104600,6 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetEnf()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       lastComparison = java.lang.Boolean.valueOf(isSetAce()).compareTo(other.isSetAce());
       if (lastComparison != 0) {
         return lastComparison;
@@ -101468,16 +104630,6 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetPnfe()).compareTo(other.isSetPnfe());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetPnfe()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.pnfe, other.pnfe);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
       return 0;
     }
 
@@ -101495,7 +104647,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("cloneExperimentByAdmin_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationModule_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -101514,14 +104666,6 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("enf:");
-      if (this.enf == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.enf);
-      }
-      first = false;
-      if (!first) sb.append(", ");
       sb.append("ace:");
       if (this.ace == null) {
         sb.append("null");
@@ -101545,14 +104689,6 @@ public class Airavata {
         sb.append(this.ae);
       }
       first = false;
-      if (!first) sb.append(", ");
-      sb.append("pnfe:");
-      if (this.pnfe == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.pnfe);
-      }
-      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -101578,15 +104714,15 @@ public class Airavata {
       }
     }
 
-    private static class cloneExperimentByAdmin_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperimentByAdmin_resultStandardScheme getScheme() {
-        return new cloneExperimentByAdmin_resultStandardScheme();
+    private static class registerApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationModule_resultStandardScheme getScheme() {
+        return new registerApplicationModule_resultStandardScheme();
       }
     }
 
-    private static class cloneExperimentByAdmin_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<cloneExperimentByAdmin_result> {
+    private static class registerApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationModule_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -101613,16 +104749,7 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // ENF
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
-                struct.enf.read(iprot);
-                struct.setEnfIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 3: // ACE
+            case 2: // ACE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ace = new org.apache.airavata.model.error.AiravataClientException();
                 struct.ace.read(iprot);
@@ -101631,7 +104758,7 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 4: // ASE
+            case 3: // ASE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
                 struct.ase.read(iprot);
@@ -101640,7 +104767,7 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 5: // AE
+            case 4: // AE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ae = new org.apache.airavata.model.error.AuthorizationException();
                 struct.ae.read(iprot);
@@ -101649,15 +104776,6 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 6: // PNFE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
-                struct.pnfe.read(iprot);
-                struct.setPnfeIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -101669,7 +104787,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -101683,11 +104801,6 @@ public class Airavata {
           struct.ire.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.enf != null) {
-          oprot.writeFieldBegin(ENF_FIELD_DESC);
-          struct.enf.write(oprot);
-          oprot.writeFieldEnd();
-        }
         if (struct.ace != null) {
           oprot.writeFieldBegin(ACE_FIELD_DESC);
           struct.ace.write(oprot);
@@ -101703,27 +104816,22 @@ public class Airavata {
           struct.ae.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.pnfe != null) {
-          oprot.writeFieldBegin(PNFE_FIELD_DESC);
-          struct.pnfe.write(oprot);
-          oprot.writeFieldEnd();
-        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class cloneExperimentByAdmin_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public cloneExperimentByAdmin_resultTupleScheme getScheme() {
-        return new cloneExperimentByAdmin_resultTupleScheme();
+    private static class registerApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationModule_resultTupleScheme getScheme() {
+        return new registerApplicationModule_resultTupleScheme();
       }
     }
 
-    private static class cloneExperimentByAdmin_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<cloneExperimentByAdmin_result> {
+    private static class registerApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<registerApplicationModule_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -101732,31 +104840,22 @@ public class Airavata {
         if (struct.isSetIre()) {
           optionals.set(1);
         }
-        if (struct.isSetEnf()) {
-          optionals.set(2);
-        }
         if (struct.isSetAce()) {
-          optionals.set(3);
+          optionals.set(2);
         }
         if (struct.isSetAse()) {
-          optionals.set(4);
+          optionals.set(3);
         }
         if (struct.isSetAe()) {
-          optionals.set(5);
-        }
-        if (struct.isSetPnfe()) {
-          optionals.set(6);
+          optionals.set(4);
         }
-        oprot.writeBitSet(optionals, 7);
+        oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
           oprot.writeString(struct.success);
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
         }
-        if (struct.isSetEnf()) {
-          struct.enf.write(oprot);
-        }
         if (struct.isSetAce()) {
           struct.ace.write(oprot);
         }
@@ -101766,15 +104865,12 @@ public class Airavata {
         if (struct.isSetAe()) {
           struct.ae.write(oprot);
         }
-        if (struct.isSetPnfe()) {
-          struct.pnfe.write(oprot);
-        }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, cloneExperimentByAdmin_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-        java.util.BitSet incoming = iprot.readBitSet(7);
+        java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
           struct.success = iprot.readString();
           struct.setSuccessIsSet(true);
@@ -101785,30 +104881,20 @@ public class Airavata {
           struct.setIreIsSet(true);
         }
         if (incoming.get(2)) {
-          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
-          struct.enf.read(iprot);
-          struct.setEnfIsSet(true);
-        }
-        if (incoming.get(3)) {
           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
           struct.ace.read(iprot);
           struct.setAceIsSet(true);
         }
-        if (incoming.get(4)) {
+        if (incoming.get(3)) {
           struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
           struct.ase.read(iprot);
           struct.setAseIsSet(true);
         }
-        if (incoming.get(5)) {
+        if (incoming.get(4)) {
           struct.ae = new org.apache.airavata.model.error.AuthorizationException();
           struct.ae.read(iprot);
           struct.setAeIsSet(true);
         }
-        if (incoming.get(6)) {
-          struct.pnfe = new org.apache.airavata.model.error.ProjectNotFoundException();
-          struct.pnfe.read(iprot);
-          struct.setPnfeIsSet(true);
-        }
       }
     }
 
@@ -101817,25 +104903,22 @@ public class Airavata {
     }
   }
 
-  public static class terminateExperiment_args implements org.apache.thrift.TBase<terminateExperiment_args, terminateExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_args");
+  public static class getApplicationModule_args implements org.apache.thrift.TBase<getApplicationModule_args, getApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<getApplicationModule_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationModule_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField AIRAVATA_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataExperimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)3);
+    private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getApplicationModule_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getApplicationModule_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String airavataExperimentId; // required
-    public java.lang.String gatewayId; // required
+    public java.lang.String appModuleId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId"),
-      GATEWAY_ID((short)3, "gatewayId");
+      APP_MODULE_ID((short)2, "appModuleId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -101852,10 +104935,8 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // AIRAVATA_EXPERIMENT_ID
-            return AIRAVATA_EXPERIMENT_ID;
-          case 3: // GATEWAY_ID
-            return GATEWAY_ID;
+          case 2: // APP_MODULE_ID
+            return APP_MODULE_ID;
           default:
             return null;
         }
@@ -101901,59 +104982,51 @@ public class Airavata {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.AIRAVATA_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("airavataExperimentId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+      tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationModule_args.class, metaDataMap);
     }
 
-    public terminateExperiment_args() {
+    public getApplicationModule_args() {
     }
 
-    public terminateExperiment_args(
+    public getApplicationModule_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String airavataExperimentId,
-      java.lang.String gatewayId)
+      java.lang.String appModuleId)
     {
       this();
       this.authzToken = authzToken;
-      this.airavataExperimentId = airavataExperimentId;
-      this.gatewayId = gatewayId;
+      this.appModuleId = appModuleId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public terminateExperiment_args(terminateExperiment_args other) {
+    public getApplicationModule_args(getApplicationModule_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetAiravataExperimentId()) {
-        this.airavataExperimentId = other.airavataExperimentId;
-      }
-      if (other.isSetGatewayId()) {
-        this.gatewayId = other.gatewayId;
+      if (other.isSetAppModuleId()) {
+        this.appModuleId = other.appModuleId;
       }
     }
 
-    public terminateExperiment_args deepCopy() {
-      return new terminateExperiment_args(this);
+    public getApplicationModule_args deepCopy() {
+      return new getApplicationModule_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.airavataExperimentId = null;
-      this.gatewayId = null;
+      this.appModuleId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public terminateExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -101973,51 +105046,27 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getAiravataExperimentId() {
-      return this.airavataExperimentId;
-    }
-
-    public terminateExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
-      this.airavataExperimentId = airavataExperimentId;
-      return this;
-    }
-
-    public void unsetAiravataExperimentId() {
-      this.airavataExperimentId = null;
-    }
-
-    /** Returns true if field airavataExperimentId is set (has been assigned a value) and false otherwise */
-    public boolean isSetAiravataExperimentId() {
-      return this.airavataExperimentId != null;
-    }
-
-    public void setAiravataExperimentIdIsSet(boolean value) {
-      if (!value) {
-        this.airavataExperimentId = null;
-      }
-    }
-
-    public java.lang.String getGatewayId() {
-      return this.gatewayId;
+    public java.lang.String getAppModuleId() {
+      return this.appModuleId;
     }
 
-    public terminateExperiment_args setGatewayId(java.lang.String gatewayId) {
-      this.gatewayId = gatewayId;
+    public getApplicationModule_args setAppModuleId(java.lang.String appModuleId) {
+      this.appModuleId = appModuleId;
       return this;
     }
 
-    public void unsetGatewayId() {
-      this.gatewayId = null;
+    public void unsetAppModuleId() {
+      this.appModuleId = null;
     }
 
-    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGatewayId() {
-      return this.gatewayId != null;
+    /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAppModuleId() {
+      return this.appModuleId != null;
     }
 
-    public void setGatewayIdIsSet(boolean value) {
+    public void setAppModuleIdIsSet(boolean value) {
       if (!value) {
-        this.gatewayId = null;
+        this.appModuleId = null;
       }
     }
 
@@ -102031,19 +105080,11 @@ public class Airavata {
         }
         break;
 
-      case AIRAVATA_EXPERIMENT_ID:
-        if (value == null) {
-          unsetAiravataExperimentId();
-        } else {
-          setAiravataExperimentId((java.lang.String)value);
-        }
-        break;
-
-      case GATEWAY_ID:
+      case APP_MODULE_ID:
         if (value == null) {
-          unsetGatewayId();
+          unsetAppModuleId();
         } else {
-          setGatewayId((java.lang.String)value);
+          setAppModuleId((java.lang.String)value);
         }
         break;
 
@@ -102055,11 +105096,8 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case AIRAVATA_EXPERIMENT_ID:
-        return getAiravataExperimentId();
-
-      case GATEWAY_ID:
-        return getGatewayId();
+      case APP_MODULE_ID:
+        return getAppModuleId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -102074,10 +105112,8 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case AIRAVATA_EXPERIMENT_ID:
-        return isSetAiravataExperimentId();
-      case GATEWAY_ID:
-        return isSetGatewayId();
+      case APP_MODULE_ID:
+        return isSetAppModuleId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -102086,12 +105122,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof terminateExperiment_args)
-        return this.equals((terminateExperiment_args)that);
+      if (that instanceof getApplicationModule_args)
+        return this.equals((getApplicationModule_args)that);
       return false;
     }
 
-    public boolean equals(terminateExperiment_args that) {
+    public boolean equals(getApplicationModule_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -102106,21 +105142,12 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_airavataExperimentId = true && this.isSetAiravataExperimentId();
-      boolean that_present_airavataExperimentId = true && that.isSetAiravataExperimentId();
-      if (this_present_airavataExperimentId || that_present_airavataExperimentId) {
-        if (!(this_present_airavataExperimentId && that_present_airavataExperimentId))
-          return false;
-        if (!this.airavataExperimentId.equals(that.airavataExperimentId))
-          return false;
-      }
-
-      boolean this_present_gatewayId = true && this.isSetGatewayId();
-      boolean that_present_gatewayId = true && that.isSetGatewayId();
-      if (this_present_gatewayId || that_present_gatewayId) {
-        if (!(this_present_gatewayId && that_present_gatewayId))
+      boolean this_present_appModuleId = true && this.isSetAppModuleId();
+      boolean that_present_appModuleId = true && that.isSetAppModuleId();
+      if (this_present_appModuleId || that_present_appModuleId) {
+        if (!(this_present_appModuleId && that_present_appModuleId))
           return false;
-        if (!this.gatewayId.equals(that.gatewayId))
+        if (!this.appModuleId.equals(that.appModuleId))
           return false;
       }
 
@@ -102135,19 +105162,15 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
-      if (isSetAiravataExperimentId())
-        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
-      if (isSetGatewayId())
-        hashCode = hashCode * 8191 + gatewayId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetAppModuleId()) ? 131071 : 524287);
+      if (isSetAppModuleId())
+        hashCode = hashCode * 8191 + appModuleId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(terminateExperiment_args other) {
+    public int compareTo(getApplicationModule_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -102164,22 +105187,12 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetAiravataExperimentId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.airavataExperimentId, other.airavataExperimentId);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      lastComparison = java.lang.Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGatewayId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (isSetAppModuleId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -102201,7 +105214,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("terminateExperiment_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getApplicationModule_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -102212,19 +105225,11 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("airavataExperimentId:");
-      if (this.airavataExperimentId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.airavataExperimentId);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
+      sb.append("appModuleId:");
+      if (this.appModuleId == null) {
         sb.append("null");
       } else {
-        sb.append(this.gatewayId);
+        sb.append(this.appModuleId);
       }
       first = false;
       sb.append(")");
@@ -102236,6 +105241,9 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
+      if (appModuleId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
@@ -102258,15 +105266,15 @@ public class Airavata {
       }
     }
 
-    private static class terminateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public terminateExperiment_argsStandardScheme getScheme() {
-        return new terminateExperiment_argsStandardScheme();
+    private static class getApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getApplicationModule_argsStandardScheme getScheme() {
+        return new getApplicationModule_argsStandardScheme();
       }
     }
 
-    private static class terminateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<terminateExperiment_args> {
+    private static class getApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getApplicationModule_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -102285,18 +105293,10 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // AIRAVATA_EXPERIMENT_ID
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.airavataExperimentId = iprot.readString();
-                struct.setAiravataExperimentIdIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 3: // GATEWAY_ID
+            case 2: // APP_MODULE_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.gatewayId = iprot.readString();
-                struct.setGatewayIdIsSet(true);
+                struct.appModuleId = iprot.readString();
+                struct.setAppModuleIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -102312,7 +105312,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationModule_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -102321,14 +105321,9 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.airavataExperimentId != null) {
-          oprot.writeFieldBegin(AIRAVATA_EXPERIMENT_ID_FIELD_DESC);
-          oprot.writeString(struct.airavataExperimentId);
-          oprot.writeFieldEnd();
-        }
-        if (struct.gatewayId != null) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
+        if (struct.appModuleId != null) {
+          oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
+          oprot.writeString(struct.appModuleId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -102337,49 +105332,29 @@ public class Airavata {
 
     }
 
-    private static class terminateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public terminateExperiment_argsTupleScheme getScheme() {
-        return new terminateExperiment_argsTupleScheme();
+    private static class getApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getApplicationModule_argsTupleScheme getScheme() {
+        return new getApplicationModule_argsTupleScheme();
       }
     }
 
-    private static class terminateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<terminateExperiment_args> {
+    private static class getApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getApplicationModule_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetAiravataExperimentId()) {
-          optionals.set(0);
-        }
-        if (struct.isSetGatewayId()) {
-          optionals.set(1);
-        }
-        oprot.writeBitSet(optionals, 2);
-        if (struct.isSetAiravataExperimentId()) {
-          oprot.writeString(struct.airavataExperimentId);
-        }
-        if (struct.isSetGatewayId()) {
-          oprot.writeString(struct.gatewayId);
-        }
+        oprot.writeString(struct.appModuleId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        java.util.BitSet incoming = iprot.readBitSet(2);
-        if (incoming.get(0)) {
-          struct.airavataExperimentId = iprot.readString();
-          struct.setAiravataExperimentIdIsSet(true);
-        }
-        if (incoming.get(1)) {
-          struct.gatewayId = iprot.readString();
-          struct.setGatewayIdIsSet(true);
-        }
+        struct.appModuleId = iprot.readString();
+        struct.setAppModuleIdIsSet(true);
       }
     }
 
@@ -102388,31 +105363,31 @@ public class Airavata {
     }
   }
 
-  public static class terminateExperiment_result implements org.apache.thrift.TBase<terminateExperiment_result, terminateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<terminateExperiment_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("terminateExperiment_result");
+  public static class getApplicationModule_result implements org.apache.thrift.TBase<getApplicationModule_result, getApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<getApplicationModule_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationModule_result");
 
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField ENF_FIELD_DESC = new org.apache.thrift.protocol.TField("enf", org.apache.thrift.protocol.TType.STRUCT, (short)2);
-    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)3);
-    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)4);
-    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)5);
+    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new terminateExperiment_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new terminateExperiment_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getApplicationModule_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getApplicationModule_resultTupleSchemeFactory();
 
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
-    public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
     public org.apache.airavata.model.error.AuthorizationException ae; // 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 {
+      SUCCESS((short)0, "success"),
       IRE((short)1, "ire"),
-      ENF((short)2, "enf"),
-      ACE((short)3, "ace"),
-      ASE((short)4, "ase"),
-      AE((short)5, "ae");
+      ACE((short)2, "ace"),
+      ASE((short)3, "ase"),
+      AE((short)4, "ae");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -102427,15 +105402,15 @@ public class Airavata {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
           case 1: // IRE
             return IRE;
-          case 2: // ENF
-            return ENF;
-          case 3: // ACE
+          case 2: // ACE
             return ACE;
-          case 4: // ASE
+          case 3: // ASE
             return ASE;
-          case 5: // AE
+          case 4: // AE
             return AE;
           default:
             return null;
@@ -102480,10 +105455,10 @@ public class Airavata {
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
-      tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.ExperimentNotFoundException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AiravataClientException.class)));
       tmpMap.put(_Fields.ASE, new org.apache.thrift.meta_data.FieldMetaData("ase", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -102491,22 +105466,22 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(terminateExperiment_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationModule_result.class, metaDataMap);
     }
 
-    public terminateExperiment_result() {
+    public getApplicationModule_result() {
     }
 
-    public terminateExperiment_result(
+    public getApplicationModule_result(
+      org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success,
       org.apache.airavata.model.error.InvalidRequestException ire,
-      org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
       org.apache.airavata.model.error.AuthorizationException ae)
     {
       this();
+      this.success = success;
       this.ire = ire;
-      this.enf = enf;
       this.ace = ace;
       this.ase = ase;
       this.ae = ae;
@@ -102515,13 +105490,13 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public terminateExperiment_result(terminateExperiment_result other) {
+    public getApplicationModule_result(getApplicationModule_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other.success);
+      }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
-      if (other.isSetEnf()) {
-        this.enf = new org.apache.airavata.model.error.ExperimentNotFoundException(other.enf);
-      }
       if (other.isSetAce()) {
         this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
       }
@@ -102533,64 +105508,64 @@ public class Airavata {
       }
     }
 
-    public terminateExperiment_result deepCopy() {
-      return new terminateExperiment_result(this);
+    public getApplicationModule_result deepCopy() {
+      return new getApplicationModule_result(this);
     }
 
     @Override
     public void clear() {
+      this.success = null;
       this.ire = null;
-      this.enf = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
     }
 
-    public org.apache.airavata.model.error.InvalidRequestException getIre() {
-      return this.ire;
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getSuccess() {
+      return this.success;
     }
 
-    public terminateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
-      this.ire = ire;
+    public getApplicationModule_result setSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success) {
+      this.success = success;
       return this;
     }
 
-    public void unsetIre() {
-      this.ire = null;
+    public void unsetSuccess() {
+      this.success = null;
     }
 
-    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
-    public boolean isSetIre() {
-      return this.ire != null;
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
     }
 
-    public void setIreIsSet(boolean value) {
+    public void setSuccessIsSet(boolean value) {
       if (!value) {
-        this.ire = null;
+        this.success = null;
       }
     }
 
-    public org.apache.airavata.model.error.ExperimentNotFoundException getEnf() {
-      return this.enf;
+    public org.apache.airavata.model.error.InvalidRequestException getIre() {
+      return this.ire;
     }
 
-    public terminateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
-      this.enf = enf;
+    public getApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+      this.ire = ire;
       return this;
     }
 
-    public void unsetEnf() {
-      this.enf = null;
+    public void unsetIre() {
+      this.ire = null;
     }
 
-    /** Returns true if field enf is set (has been assigned a value) and false otherwise */
-    public boolean isSetEnf() {
-      return this.enf != null;
+    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
+    public boolean isSetIre() {
+      return this.ire != null;
     }
 
-    public void setEnfIsSet(boolean value) {
+    public void setIreIsSet(boolean value) {
       if (!value) {
-        this.enf = null;
+        this.ire = null;
       }
     }
 
@@ -102598,7 +105573,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public terminateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -102622,7 +105597,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public terminateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -102646,7 +105621,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public terminateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -102668,19 +105643,19 @@ public class Airavata {
 
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
-      case IRE:
+      case SUCCESS:
         if (value == null) {
-          unsetIre();
+          unsetSuccess();
         } else {
-          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
+          setSuccess((org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)value);
         }
         break;
 
-      case ENF:
+      case IRE:
         if (value == null) {
-          unsetEnf();
+          unsetIre();
         } else {
-          setEnf((org.apache.airavata.model.error.ExperimentNotFoundException)value);
+          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
         }
         break;
 
@@ -102713,12 +105688,12 @@ public class Airavata {
 
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       case IRE:
         return getIre();
 
-      case ENF:
-        return getEnf();
-
       case ACE:
         return getAce();
 
@@ -102739,10 +105714,10 @@ public class Airavata {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       case IRE:
         return isSetIre();
-      case ENF:
-        return isSetEnf();
       case ACE:
         return isSetAce();
       case ASE:
@@ -102757,17 +105732,26 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof terminateExperiment_result)
-        return this.equals((terminateExperiment_result)that);
+      if (that instanceof getApplicationModule_result)
+        return this.equals((getApplicationModule_result)that);
       return false;
     }
 
-    public boolean equals(terminateExperiment_result that) {
+    public boolean equals(getApplicationModule_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       boolean this_present_ire = true && this.isSetIre();
       boolean that_present_ire = true && that.isSetIre();
       if (this_present_ire || that_present_ire) {
@@ -102777,15 +105761,6 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_enf = true && this.isSetEnf();
-      boolean that_present_enf = true && that.isSetEnf();
-      if (this_present_enf || that_present_enf) {
-        if (!(this_present_enf && that_present_enf))
-          return false;
-        if (!this.enf.equals(that.enf))
-          return false;
-      }
-
       boolean this_present_ace = true && this.isSetAce();
       boolean that_present_ace = true && that.isSetAce();
       if (this_present_ace || that_present_ace) {
@@ -102820,14 +105795,14 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
+
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
         hashCode = hashCode * 8191 + ire.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
-      if (isSetEnf())
-        hashCode = hashCode * 8191 + enf.hashCode();
-
       hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
       if (isSetAce())
         hashCode = hashCode * 8191 + ace.hashCode();
@@ -102844,29 +105819,29 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(terminateExperiment_result other) {
+    public int compareTo(getApplicationModule_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = java.lang.Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
+      lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetIre()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ire, other.ire);
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
         if (lastComparison != 0) {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
+      lastComparison = java.lang.Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetEnf()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.enf, other.enf);
+      if (isSetIre()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ire, other.ire);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -102918,22 +105893,22 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("terminateExperiment_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getApplicationModule_result(");
       boolean first = true;
 
-      sb.append("ire:");
-      if (this.ire == null) {
+      sb.append("success:");
+      if (this.success == null) {
         sb.append("null");
       } else {
-        sb.append(this.ire);
+        sb.append(this.success);
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("enf:");
-      if (this.enf == null) {
+      sb.append("ire:");
+      if (this.ire == null) {
         sb.append("null");
       } else {
-        sb.append(this.enf);
+        sb.append(this.ire);
       }
       first = false;
       if (!first) sb.append(", ");
@@ -102967,6 +105942,9 @@ public class Airavata {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -102985,15 +105963,15 @@ public class Airavata {
       }
     }
 
-    private static class terminateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public terminateExperiment_resultStandardScheme getScheme() {
-        return new terminateExperiment_resultStandardScheme();
+    private static class getApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getApplicationModule_resultStandardScheme getScheme() {
+        return new getApplicationModule_resultStandardScheme();
       }
     }
 
-    private static class terminateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<terminateExperiment_result> {
+    private static class getApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getApplicationModule_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -103003,25 +105981,25 @@ public class Airavata {
             break;
           }
           switch (schemeField.id) {
-            case 1: // IRE
+            case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
-                struct.ire.read(iprot);
-                struct.setIreIsSet(true);
+                struct.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+                struct.success.read(iprot);
+                struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // ENF
+            case 1: // IRE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
-                struct.enf.read(iprot);
-                struct.setEnfIsSet(true);
+                struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
+                struct.ire.read(iprot);
+                struct.setIreIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 3: // ACE
+            case 2: // ACE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ace = new org.apache.airavata.model.error.AiravataClientException();
                 struct.ace.read(iprot);
@@ -103030,7 +106008,7 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 4: // ASE
+            case 3: // ASE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
                 struct.ase.read(iprot);
@@ -103039,7 +106017,7 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 5: // AE
+            case 4: // AE
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
                 struct.ae = new org.apache.airavata.model.error.AuthorizationException();
                 struct.ae.read(iprot);
@@ -103059,20 +106037,20 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationModule_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          struct.success.write(oprot);
+          oprot.writeFieldEnd();
+        }
         if (struct.ire != null) {
           oprot.writeFieldBegin(IRE_FIELD_DESC);
           struct.ire.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.enf != null) {
-          oprot.writeFieldBegin(ENF_FIELD_DESC);
-          struct.enf.write(oprot);
-          oprot.writeFieldEnd();
-        }
         if (struct.ace != null) {
           oprot.writeFieldBegin(ACE_FIELD_DESC);
           struct.ace.write(oprot);
@@ -103094,22 +106072,22 @@ public class Airavata {
 
     }
 
-    private static class terminateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public terminateExperiment_resultTupleScheme getScheme() {
-        return new terminateExperiment_resultTupleScheme();
+    private static class getApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getApplicationModule_resultTupleScheme getScheme() {
+        return new getApplicationModule_resultTupleScheme();
       }
     }
 
-    private static class terminateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<terminateExperiment_result> {
+    private static class getApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getApplicationModule_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
-        if (struct.isSetIre()) {
+        if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        if (struct.isSetEnf()) {
+        if (struct.isSetIre()) {
           optionals.set(1);
         }
         if (struct.isSetAce()) {
@@ -103122,12 +106100,12 @@ public class Airavata {
           optionals.set(4);
         }
         oprot.writeBitSet(optionals, 5);
+        if (struct.isSetSuccess()) {
+          struct.success.write(oprot);
+        }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
         }
-        if (struct.isSetEnf()) {
-          struct.enf.write(oprot);
-        }
         if (struct.isSetAce()) {
           struct.ace.write(oprot);
         }
@@ -103140,19 +106118,19 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, terminateExperiment_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
+          struct.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+          struct.success.read(iprot);
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
           struct.ire = new org.apache.airavata.model.error.InvalidRequestException();
           struct.ire.read(iprot);
           struct.setIreIsSet(true);
         }
-        if (incoming.get(1)) {
-          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
-          struct.enf.read(iprot);
-          struct.setEnfIsSet(true);
-        }
         if (incoming.get(2)) {
           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
           struct.ace.read(iprot);
@@ -103176,24 +106154,24 @@ public class Airavata {
     }
   }
 
-  public static class registerApplicationModule_args implements org.apache.thrift.TBase<registerApplicationModule_args, registerApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationModule_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationModule_args");
+  public static class updateApplicationModule_args implements org.apache.thrift.TBase<updateApplicationModule_args, updateApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateApplicationModule_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplicationModule_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
     private static final org.apache.thrift.protocol.TField APPLICATION_MODULE_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationModule", org.apache.thrift.protocol.TType.STRUCT, (short)3);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationModule_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationModule_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateApplicationModule_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateApplicationModule_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String gatewayId; // required
+    public java.lang.String appModuleId; // required
     public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      GATEWAY_ID((short)2, "gatewayId"),
+      APP_MODULE_ID((short)2, "appModuleId"),
       APPLICATION_MODULE((short)3, "applicationModule");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
@@ -103211,8 +106189,8 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // GATEWAY_ID
-            return GATEWAY_ID;
+          case 2: // APP_MODULE_ID
+            return APP_MODULE_ID;
           case 3: // APPLICATION_MODULE
             return APPLICATION_MODULE;
           default:
@@ -103260,51 +106238,51 @@ public class Airavata {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.APPLICATION_MODULE, new org.apache.thrift.meta_data.FieldMetaData("applicationModule", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationModule_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplicationModule_args.class, metaDataMap);
     }
 
-    public registerApplicationModule_args() {
+    public updateApplicationModule_args() {
     }
 
-    public registerApplicationModule_args(
+    public updateApplicationModule_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String gatewayId,
+      java.lang.String appModuleId,
       org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule)
     {
       this();
       this.authzToken = authzToken;
-      this.gatewayId = gatewayId;
+      this.appModuleId = appModuleId;
       this.applicationModule = applicationModule;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerApplicationModule_args(registerApplicationModule_args other) {
+    public updateApplicationModule_args(updateApplicationModule_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetGatewayId()) {
-        this.gatewayId = other.gatewayId;
+      if (other.isSetAppModuleId()) {
+        this.appModuleId = other.appModuleId;
       }
       if (other.isSetApplicationModule()) {
         this.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other.applicationModule);
       }
     }
 
-    public registerApplicationModule_args deepCopy() {
-      return new registerApplicationModule_args(this);
+    public updateApplicationModule_args deepCopy() {
+      return new updateApplicationModule_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.gatewayId = null;
+      this.appModuleId = null;
       this.applicationModule = null;
     }
 
@@ -103312,7 +106290,7 @@ public class Airavata {
       return this.authzToken;
     }
 
-    public registerApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public updateApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -103332,27 +106310,27 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getGatewayId() {
-      return this.gatewayId;
+    public java.lang.String getAppModuleId() {
+      return this.appModuleId;
     }
 
-    public registerApplicationModule_args setGatewayId(java.lang.String gatewayId) {
-      this.gatewayId = gatewayId;
+    public updateApplicationModule_args setAppModuleId(java.lang.String appModuleId) {
+      this.appModuleId = appModuleId;
       return this;
     }
 
-    public void unsetGatewayId() {
-      this.gatewayId = null;
+    public void unsetAppModuleId() {
+      this.appModuleId = null;
     }
 
-    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGatewayId() {
-      return this.gatewayId != null;
+    /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAppModuleId() {
+      return this.appModuleId != null;
     }
 
-    public void setGatewayIdIsSet(boolean value) {
+    public void setAppModuleIdIsSet(boolean value) {
       if (!value) {
-        this.gatewayId = null;
+        this.appModuleId = null;
       }
     }
 
@@ -103360,7 +106338,7 @@ public class Airavata {
       return this.applicationModule;
     }
 
-    public registerApplicationModule_args setApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) {
+    public updateApplicationModule_args setApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) {
       this.applicationModule = applicationModule;
       return this;
     }
@@ -103390,11 +106368,11 @@ public class Airavata {
         }
         break;
 
-      case GATEWAY_ID:
+      case APP_MODULE_ID:
         if (value == null) {
-          unsetGatewayId();
+          unsetAppModuleId();
         } else {
-          setGatewayId((java.lang.String)value);
+          setAppModuleId((java.lang.String)value);
         }
         break;
 
@@ -103414,8 +106392,8 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case GATEWAY_ID:
-        return getGatewayId();
+      case APP_MODULE_ID:
+        return getAppModuleId();
 
       case APPLICATION_MODULE:
         return getApplicationModule();
@@ -103433,8 +106411,8 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case GATEWAY_ID:
-        return isSetGatewayId();
+      case APP_MODULE_ID:
+        return isSetAppModuleId();
       case APPLICATION_MODULE:
         return isSetApplicationModule();
       }
@@ -103445,12 +106423,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerApplicationModule_args)
-        return this.equals((registerApplicationModule_args)that);
+      if (that instanceof updateApplicationModule_args)
+        return this.equals((updateApplicationModule_args)that);
       return false;
     }
 
-    public boolean equals(registerApplicationModule_args that) {
+    public boolean equals(updateApplicationModule_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -103465,12 +106443,12 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_gatewayId = true && this.isSetGatewayId();
-      boolean that_present_gatewayId = true && that.isSetGatewayId();
-      if (this_present_gatewayId || that_present_gatewayId) {
-        if (!(this_present_gatewayId && that_present_gatewayId))
+      boolean this_present_appModuleId = true && this.isSetAppModuleId();
+      boolean that_present_appModuleId = true && that.isSetAppModuleId();
+      if (this_present_appModuleId || that_present_appModuleId) {
+        if (!(this_present_appModuleId && that_present_appModuleId))
           return false;
-        if (!this.gatewayId.equals(that.gatewayId))
+        if (!this.appModuleId.equals(that.appModuleId))
           return false;
       }
 
@@ -103494,9 +106472,9 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
-      if (isSetGatewayId())
-        hashCode = hashCode * 8191 + gatewayId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetAppModuleId()) ? 131071 : 524287);
+      if (isSetAppModuleId())
+        hashCode = hashCode * 8191 + appModuleId.hashCode();
 
       hashCode = hashCode * 8191 + ((isSetApplicationModule()) ? 131071 : 524287);
       if (isSetApplicationModule())
@@ -103506,7 +106484,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(registerApplicationModule_args other) {
+    public int compareTo(updateApplicationModule_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -103523,12 +106501,12 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      lastComparison = java.lang.Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGatewayId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (isSetAppModuleId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -103560,7 +106538,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationModule_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateApplicationModule_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -103571,11 +106549,11 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
+      sb.append("appModuleId:");
+      if (this.appModuleId == null) {
         sb.append("null");
       } else {
-        sb.append(this.gatewayId);
+        sb.append(this.appModuleId);
       }
       first = false;
       if (!first) sb.append(", ");
@@ -103595,8 +106573,8 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
-      if (gatewayId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      if (appModuleId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
       }
       if (applicationModule == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationModule' was not present! Struct: " + toString());
@@ -103626,15 +106604,15 @@ public class Airavata {
       }
     }
 
-    private static class registerApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public registerApplicationModule_argsStandardScheme getScheme() {
-        return new registerApplicationModule_argsStandardScheme();
+    private static class updateApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateApplicationModule_argsStandardScheme getScheme() {
+        return new updateApplicationModule_argsStandardScheme();
       }
     }
 
-    private static class registerApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationModule_args> {
+    private static class updateApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateApplicationModule_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -103653,10 +106631,10 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // GATEWAY_ID
+            case 2: // APP_MODULE_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.gatewayId = iprot.readString();
-                struct.setGatewayIdIsSet(true);
+                struct.appModuleId = iprot.readString();
+                struct.setAppModuleIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -103681,7 +106659,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -103690,9 +106668,9 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.gatewayId != null) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
+        if (struct.appModuleId != null) {
+          oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
+          oprot.writeString(struct.appModuleId);
           oprot.writeFieldEnd();
         }
         if (struct.applicationModule != null) {
@@ -103706,30 +106684,30 @@ public class Airavata {
 
     }
 
-    private static class registerApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public registerApplicationModule_argsTupleScheme getScheme() {
-        return new registerApplicationModule_argsTupleScheme();
+    private static class updateApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateApplicationModule_argsTupleScheme getScheme() {
+        return new updateApplicationModule_argsTupleScheme();
       }
     }
 
-    private static class registerApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<registerApplicationModule_args> {
+    private static class updateApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateApplicationModule_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        oprot.writeString(struct.gatewayId);
+        oprot.writeString(struct.appModuleId);
         struct.applicationModule.write(oprot);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
+        struct.appModuleId = iprot.readString();
+        struct.setAppModuleIdIsSet(true);
         struct.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
         struct.applicationModule.read(iprot);
         struct.setApplicationModuleIsSet(true);
@@ -103741,19 +106719,19 @@ public class Airavata {
     }
   }
 
-  public static class registerApplicationModule_result implements org.apache.thrift.TBase<registerApplicationModule_result, registerApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationModule_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationModule_result");
+  public static class updateApplicationModule_result implements org.apache.thrift.TBase<updateApplicationModule_result, updateApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateApplicationModule_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplicationModule_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationModule_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationModule_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateApplicationModule_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateApplicationModule_resultTupleSchemeFactory();
 
-    public java.lang.String success; // required
+    public boolean success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -103830,11 +106808,13 @@ public class Airavata {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -103844,14 +106824,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationModule_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplicationModule_result.class, metaDataMap);
     }
 
-    public registerApplicationModule_result() {
+    public updateApplicationModule_result() {
     }
 
-    public registerApplicationModule_result(
-      java.lang.String success,
+    public updateApplicationModule_result(
+      boolean success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -103859,6 +106839,7 @@ public class Airavata {
     {
       this();
       this.success = success;
+      setSuccessIsSet(true);
       this.ire = ire;
       this.ace = ace;
       this.ase = ase;
@@ -103868,10 +106849,9 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public registerApplicationModule_result(registerApplicationModule_result other) {
-      if (other.isSetSuccess()) {
-        this.success = other.success;
-      }
+    public updateApplicationModule_result(updateApplicationModule_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -103886,48 +106866,48 @@ public class Airavata {
       }
     }
 
-    public registerApplicationModule_result deepCopy() {
-      return new registerApplicationModule_result(this);
+    public updateApplicationModule_result deepCopy() {
+      return new updateApplicationModule_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
+      setSuccessIsSet(false);
+      this.success = false;
       this.ire = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
     }
 
-    public java.lang.String getSuccess() {
+    public boolean isSuccess() {
       return this.success;
     }
 
-    public registerApplicationModule_result setSuccess(java.lang.String success) {
+    public updateApplicationModule_result setSuccess(boolean success) {
       this.success = success;
+      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      this.success = null;
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return this.success != null;
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
     }
 
     public org.apache.airavata.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public registerApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public updateApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -103951,7 +106931,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public registerApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public updateApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -103975,7 +106955,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public registerApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public updateApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -103999,7 +106979,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public registerApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public updateApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -104025,7 +107005,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.String)value);
+          setSuccess((java.lang.Boolean)value);
         }
         break;
 
@@ -104067,7 +107047,7 @@ public class Airavata {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return getSuccess();
+        return isSuccess();
 
       case IRE:
         return getIre();
@@ -104110,23 +107090,23 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof registerApplicationModule_result)
-        return this.equals((registerApplicationModule_result)that);
+      if (that instanceof updateApplicationModule_result)
+        return this.equals((updateApplicationModule_result)that);
       return false;
     }
 
-    public boolean equals(registerApplicationModule_result that) {
+    public boolean equals(updateApplicationModule_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
+      boolean this_present_success = true;
+      boolean that_present_success = true;
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (!this.success.equals(that.success))
+        if (this.success != that.success)
           return false;
       }
 
@@ -104173,9 +107153,7 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
 
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
@@ -104197,7 +107175,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(registerApplicationModule_result other) {
+    public int compareTo(updateApplicationModule_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -104271,15 +107249,11 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationModule_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateApplicationModule_result(");
       boolean first = true;
 
       sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
+      sb.append(this.success);
       first = false;
       if (!first) sb.append(", ");
       sb.append("ire:");
@@ -104332,21 +107306,23 @@ public class Airavata {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class registerApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public registerApplicationModule_resultStandardScheme getScheme() {
-        return new registerApplicationModule_resultStandardScheme();
+    private static class updateApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateApplicationModule_resultStandardScheme getScheme() {
+        return new updateApplicationModule_resultStandardScheme();
       }
     }
 
-    private static class registerApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationModule_result> {
+    private static class updateApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateApplicationModule_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -104357,8 +107333,8 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.success = iprot.readString();
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -104411,13 +107387,13 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
+        if (struct.isSetSuccess()) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeString(struct.success);
+          oprot.writeBool(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -104446,16 +107422,16 @@ public class Airavata {
 
     }
 
-    private static class registerApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public registerApplicationModule_resultTupleScheme getScheme() {
-        return new registerApplicationModule_resultTupleScheme();
+    private static class updateApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public updateApplicationModule_resultTupleScheme getScheme() {
+        return new updateApplicationModule_resultTupleScheme();
       }
     }
 
-    private static class registerApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<registerApplicationModule_result> {
+    private static class updateApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateApplicationModule_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -104475,7 +107451,7 @@ public class Airavata {
         }
         oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
-          oprot.writeString(struct.success);
+          oprot.writeBool(struct.success);
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -104492,11 +107468,11 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, registerApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.success = iprot.readString();
+          struct.success = iprot.readBool();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -104527,22 +107503,22 @@ public class Airavata {
     }
   }
 
-  public static class getApplicationModule_args implements org.apache.thrift.TBase<getApplicationModule_args, getApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<getApplicationModule_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationModule_args");
+  public static class getAllAppModules_args implements org.apache.thrift.TBase<getAllAppModules_args, getAllAppModules_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAllAppModules_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAppModules_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getApplicationModule_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getApplicationModule_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllAppModules_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllAppModules_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String appModuleId; // required
+    public java.lang.String gatewayId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      APP_MODULE_ID((short)2, "appModuleId");
+      GATEWAY_ID((short)2, "gatewayId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -104559,8 +107535,8 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // APP_MODULE_ID
-            return APP_MODULE_ID;
+          case 2: // GATEWAY_ID
+            return GATEWAY_ID;
           default:
             return null;
         }
@@ -104606,51 +107582,51 @@ public class Airavata {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationModule_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAppModules_args.class, metaDataMap);
     }
 
-    public getApplicationModule_args() {
+    public getAllAppModules_args() {
     }
 
-    public getApplicationModule_args(
+    public getAllAppModules_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String appModuleId)
+      java.lang.String gatewayId)
     {
       this();
       this.authzToken = authzToken;
-      this.appModuleId = appModuleId;
+      this.gatewayId = gatewayId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getApplicationModule_args(getApplicationModule_args other) {
+    public getAllAppModules_args(getAllAppModules_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetAppModuleId()) {
-        this.appModuleId = other.appModuleId;
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
       }
     }
 
-    public getApplicationModule_args deepCopy() {
-      return new getApplicationModule_args(this);
+    public getAllAppModules_args deepCopy() {
+      return new getAllAppModules_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.appModuleId = null;
+      this.gatewayId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public getApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getAllAppModules_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -104670,27 +107646,27 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getAppModuleId() {
-      return this.appModuleId;
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
     }
 
-    public getApplicationModule_args setAppModuleId(java.lang.String appModuleId) {
-      this.appModuleId = appModuleId;
+    public getAllAppModules_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
       return this;
     }
 
-    public void unsetAppModuleId() {
-      this.appModuleId = null;
+    public void unsetGatewayId() {
+      this.gatewayId = null;
     }
 
-    /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
-    public boolean isSetAppModuleId() {
-      return this.appModuleId != null;
+    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
     }
 
-    public void setAppModuleIdIsSet(boolean value) {
+    public void setGatewayIdIsSet(boolean value) {
       if (!value) {
-        this.appModuleId = null;
+        this.gatewayId = null;
       }
     }
 
@@ -104704,11 +107680,11 @@ public class Airavata {
         }
         break;
 
-      case APP_MODULE_ID:
+      case GATEWAY_ID:
         if (value == null) {
-          unsetAppModuleId();
+          unsetGatewayId();
         } else {
-          setAppModuleId((java.lang.String)value);
+          setGatewayId((java.lang.String)value);
         }
         break;
 
@@ -104720,8 +107696,8 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case APP_MODULE_ID:
-        return getAppModuleId();
+      case GATEWAY_ID:
+        return getGatewayId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -104736,8 +107712,8 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case APP_MODULE_ID:
-        return isSetAppModuleId();
+      case GATEWAY_ID:
+        return isSetGatewayId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -104746,12 +107722,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getApplicationModule_args)
-        return this.equals((getApplicationModule_args)that);
+      if (that instanceof getAllAppModules_args)
+        return this.equals((getAllAppModules_args)that);
       return false;
     }
 
-    public boolean equals(getApplicationModule_args that) {
+    public boolean equals(getAllAppModules_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -104766,12 +107742,12 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_appModuleId = true && this.isSetAppModuleId();
-      boolean that_present_appModuleId = true && that.isSetAppModuleId();
-      if (this_present_appModuleId || that_present_appModuleId) {
-        if (!(this_present_appModuleId && that_present_appModuleId))
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
           return false;
-        if (!this.appModuleId.equals(that.appModuleId))
+        if (!this.gatewayId.equals(that.gatewayId))
           return false;
       }
 
@@ -104786,15 +107762,15 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetAppModuleId()) ? 131071 : 524287);
-      if (isSetAppModuleId())
-        hashCode = hashCode * 8191 + appModuleId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getApplicationModule_args other) {
+    public int compareTo(getAllAppModules_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -104811,12 +107787,12 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetAppModuleId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -104838,7 +107814,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getApplicationModule_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAllAppModules_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -104849,11 +107825,11 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("appModuleId:");
-      if (this.appModuleId == null) {
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
         sb.append("null");
       } else {
-        sb.append(this.appModuleId);
+        sb.append(this.gatewayId);
       }
       first = false;
       sb.append(")");
@@ -104865,8 +107841,8 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
-      if (appModuleId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
       if (authzToken != null) {
@@ -104890,15 +107866,15 @@ public class Airavata {
       }
     }
 
-    private static class getApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getApplicationModule_argsStandardScheme getScheme() {
-        return new getApplicationModule_argsStandardScheme();
+    private static class getAllAppModules_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAllAppModules_argsStandardScheme getScheme() {
+        return new getAllAppModules_argsStandardScheme();
       }
     }
 
-    private static class getApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getApplicationModule_args> {
+    private static class getAllAppModules_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAllAppModules_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAllAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -104917,10 +107893,10 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // APP_MODULE_ID
+            case 2: // GATEWAY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.appModuleId = iprot.readString();
-                struct.setAppModuleIdIsSet(true);
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -104936,7 +107912,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAllAppModules_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -104945,9 +107921,9 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.appModuleId != null) {
-          oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
-          oprot.writeString(struct.appModuleId);
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -104956,29 +107932,29 @@ public class Airavata {
 
     }
 
-    private static class getApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getApplicationModule_argsTupleScheme getScheme() {
-        return new getApplicationModule_argsTupleScheme();
+    private static class getAllAppModules_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAllAppModules_argsTupleScheme getScheme() {
+        return new getAllAppModules_argsTupleScheme();
       }
     }
 
-    private static class getApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getApplicationModule_args> {
+    private static class getAllAppModules_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAllAppModules_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        oprot.writeString(struct.appModuleId);
+        oprot.writeString(struct.gatewayId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.appModuleId = iprot.readString();
-        struct.setAppModuleIdIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
       }
     }
 
@@ -104987,19 +107963,19 @@ public class Airavata {
     }
   }
 
-  public static class getApplicationModule_result implements org.apache.thrift.TBase<getApplicationModule_result, getApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<getApplicationModule_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getApplicationModule_result");
+  public static class getAllAppModules_result implements org.apache.thrift.TBase<getAllAppModules_result, getAllAppModules_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAllAppModules_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAppModules_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getApplicationModule_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getApplicationModule_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllAppModules_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllAppModules_resultTupleSchemeFactory();
 
-    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success; // required
+    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -105080,7 +108056,8 @@ public class Airavata {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -105090,14 +108067,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getApplicationModule_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAppModules_result.class, metaDataMap);
     }
 
-    public getApplicationModule_result() {
+    public getAllAppModules_result() {
     }
 
-    public getApplicationModule_result(
-      org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success,
+    public getAllAppModules_result(
+      java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -105114,9 +108091,13 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getApplicationModule_result(getApplicationModule_result other) {
+    public getAllAppModules_result(getAllAppModules_result other) {
       if (other.isSetSuccess()) {
-        this.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other.success);
+        java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(other.success.size());
+        for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other_element));
+        }
+        this.success = __this__success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -105132,8 +108113,8 @@ public class Airavata {
       }
     }
 
-    public getApplicationModule_result deepCopy() {
-      return new getApplicationModule_result(this);
+    public getAllAppModules_result deepCopy() {
+      return new getAllAppModules_result(this);
     }
 
     @Override
@@ -105145,11 +108126,26 @@ public class Airavata {
       this.ae = null;
     }
 
-    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccess() {
       return this.success;
     }
 
-    public getApplicationModule_result setSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule success) {
+    public getAllAppModules_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success) {
       this.success = success;
       return this;
     }
@@ -105173,7 +108169,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getAllAppModules_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -105197,7 +108193,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getAllAppModules_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -105221,7 +108217,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getAllAppModules_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -105245,7 +108241,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getAllAppModules_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -105271,7 +108267,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)value);
+          setSuccess((java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>)value);
         }
         break;
 
@@ -105356,12 +108352,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getApplicationModule_result)
-        return this.equals((getApplicationModule_result)that);
+      if (that instanceof getAllAppModules_result)
+        return this.equals((getAllAppModules_result)that);
       return false;
     }
 
-    public boolean equals(getApplicationModule_result that) {
+    public boolean equals(getAllAppModules_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -105443,7 +108439,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getApplicationModule_result other) {
+    public int compareTo(getAllAppModules_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -105517,7 +108513,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getApplicationModule_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAllAppModules_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -105566,9 +108562,6 @@ public class Airavata {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (success != null) {
-        success.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -105587,15 +108580,15 @@ public class Airavata {
       }
     }
 
-    private static class getApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getApplicationModule_resultStandardScheme getScheme() {
-        return new getApplicationModule_resultStandardScheme();
+    private static class getAllAppModules_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAllAppModules_resultStandardScheme getScheme() {
+        return new getAllAppModules_resultStandardScheme();
       }
     }
 
-    private static class getApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getApplicationModule_result> {
+    private static class getAllAppModules_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAllAppModules_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAllAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -105606,9 +108599,19 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-                struct.success.read(iprot);
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list126 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list126.size);
+                  org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem127;
+                  for (int _i128 = 0; _i128 < _list126.size; ++_i128)
+                  {
+                    _elem127 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+                    _elem127.read(iprot);
+                    struct.success.add(_elem127);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -105661,13 +108664,20 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAllAppModules_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
         if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          struct.success.write(oprot);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter129 : struct.success)
+            {
+              _iter129.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -105696,16 +108706,16 @@ public class Airavata {
 
     }
 
-    private static class getApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getApplicationModule_resultTupleScheme getScheme() {
-        return new getApplicationModule_resultTupleScheme();
+    private static class getAllAppModules_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAllAppModules_resultTupleScheme getScheme() {
+        return new getAllAppModules_resultTupleScheme();
       }
     }
 
-    private static class getApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getApplicationModule_result> {
+    private static class getAllAppModules_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAllAppModules_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -105725,7 +108735,13 @@ public class Airavata {
         }
         oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
-          struct.success.write(oprot);
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter130 : struct.success)
+            {
+              _iter130.write(oprot);
+            }
+          }
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -105742,12 +108758,21 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.success = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-          struct.success.read(iprot);
+          {
+            org.apache.thrift.protocol.TList _list131 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list131.size);
+            org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem132;
+            for (int _i133 = 0; _i133 < _list131.size; ++_i133)
+            {
+              _elem132 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+              _elem132.read(iprot);
+              struct.success.add(_elem132);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -105778,25 +108803,22 @@ public class Airavata {
     }
   }
 
-  public static class updateApplicationModule_args implements org.apache.thrift.TBase<updateApplicationModule_args, updateApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateApplicationModule_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplicationModule_args");
+  public static class getAccessibleAppModules_args implements org.apache.thrift.TBase<getAccessibleAppModules_args, getAccessibleAppModules_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAccessibleAppModules_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAccessibleAppModules_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
-    private static final org.apache.thrift.protocol.TField APPLICATION_MODULE_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationModule", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateApplicationModule_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateApplicationModule_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAccessibleAppModules_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAccessibleAppModules_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String appModuleId; // required
-    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule; // required
+    public java.lang.String gatewayId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      APP_MODULE_ID((short)2, "appModuleId"),
-      APPLICATION_MODULE((short)3, "applicationModule");
+      GATEWAY_ID((short)2, "gatewayId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -105813,10 +108835,8 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // APP_MODULE_ID
-            return APP_MODULE_ID;
-          case 3: // APPLICATION_MODULE
-            return APPLICATION_MODULE;
+          case 2: // GATEWAY_ID
+            return GATEWAY_ID;
           default:
             return null;
         }
@@ -105862,59 +108882,51 @@ public class Airavata {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-      tmpMap.put(_Fields.APPLICATION_MODULE, new org.apache.thrift.meta_data.FieldMetaData("applicationModule", org.apache.thrift.TFieldRequirementType.REQUIRED, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplicationModule_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAccessibleAppModules_args.class, metaDataMap);
     }
 
-    public updateApplicationModule_args() {
+    public getAccessibleAppModules_args() {
     }
 
-    public updateApplicationModule_args(
+    public getAccessibleAppModules_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String appModuleId,
-      org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule)
+      java.lang.String gatewayId)
     {
       this();
       this.authzToken = authzToken;
-      this.appModuleId = appModuleId;
-      this.applicationModule = applicationModule;
+      this.gatewayId = gatewayId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateApplicationModule_args(updateApplicationModule_args other) {
+    public getAccessibleAppModules_args(getAccessibleAppModules_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetAppModuleId()) {
-        this.appModuleId = other.appModuleId;
-      }
-      if (other.isSetApplicationModule()) {
-        this.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other.applicationModule);
+      if (other.isSetGatewayId()) {
+        this.gatewayId = other.gatewayId;
       }
     }
 
-    public updateApplicationModule_args deepCopy() {
-      return new updateApplicationModule_args(this);
+    public getAccessibleAppModules_args deepCopy() {
+      return new getAccessibleAppModules_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.appModuleId = null;
-      this.applicationModule = null;
+      this.gatewayId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public updateApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public getAccessibleAppModules_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -105934,51 +108946,27 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getAppModuleId() {
-      return this.appModuleId;
-    }
-
-    public updateApplicationModule_args setAppModuleId(java.lang.String appModuleId) {
-      this.appModuleId = appModuleId;
-      return this;
-    }
-
-    public void unsetAppModuleId() {
-      this.appModuleId = null;
-    }
-
-    /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
-    public boolean isSetAppModuleId() {
-      return this.appModuleId != null;
-    }
-
-    public void setAppModuleIdIsSet(boolean value) {
-      if (!value) {
-        this.appModuleId = null;
-      }
-    }
-
-    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule getApplicationModule() {
-      return this.applicationModule;
+    public java.lang.String getGatewayId() {
+      return this.gatewayId;
     }
 
-    public updateApplicationModule_args setApplicationModule(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule) {
-      this.applicationModule = applicationModule;
+    public getAccessibleAppModules_args setGatewayId(java.lang.String gatewayId) {
+      this.gatewayId = gatewayId;
       return this;
     }
 
-    public void unsetApplicationModule() {
-      this.applicationModule = null;
+    public void unsetGatewayId() {
+      this.gatewayId = null;
     }
 
-    /** Returns true if field applicationModule is set (has been assigned a value) and false otherwise */
-    public boolean isSetApplicationModule() {
-      return this.applicationModule != null;
+    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
+    public boolean isSetGatewayId() {
+      return this.gatewayId != null;
     }
 
-    public void setApplicationModuleIsSet(boolean value) {
+    public void setGatewayIdIsSet(boolean value) {
       if (!value) {
-        this.applicationModule = null;
+        this.gatewayId = null;
       }
     }
 
@@ -105992,19 +108980,11 @@ public class Airavata {
         }
         break;
 
-      case APP_MODULE_ID:
-        if (value == null) {
-          unsetAppModuleId();
-        } else {
-          setAppModuleId((java.lang.String)value);
-        }
-        break;
-
-      case APPLICATION_MODULE:
+      case GATEWAY_ID:
         if (value == null) {
-          unsetApplicationModule();
+          unsetGatewayId();
         } else {
-          setApplicationModule((org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule)value);
+          setGatewayId((java.lang.String)value);
         }
         break;
 
@@ -106016,11 +108996,8 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case APP_MODULE_ID:
-        return getAppModuleId();
-
-      case APPLICATION_MODULE:
-        return getApplicationModule();
+      case GATEWAY_ID:
+        return getGatewayId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -106035,10 +109012,8 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case APP_MODULE_ID:
-        return isSetAppModuleId();
-      case APPLICATION_MODULE:
-        return isSetApplicationModule();
+      case GATEWAY_ID:
+        return isSetGatewayId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -106047,12 +109022,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateApplicationModule_args)
-        return this.equals((updateApplicationModule_args)that);
+      if (that instanceof getAccessibleAppModules_args)
+        return this.equals((getAccessibleAppModules_args)that);
       return false;
     }
 
-    public boolean equals(updateApplicationModule_args that) {
+    public boolean equals(getAccessibleAppModules_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -106067,21 +109042,12 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_appModuleId = true && this.isSetAppModuleId();
-      boolean that_present_appModuleId = true && that.isSetAppModuleId();
-      if (this_present_appModuleId || that_present_appModuleId) {
-        if (!(this_present_appModuleId && that_present_appModuleId))
-          return false;
-        if (!this.appModuleId.equals(that.appModuleId))
-          return false;
-      }
-
-      boolean this_present_applicationModule = true && this.isSetApplicationModule();
-      boolean that_present_applicationModule = true && that.isSetApplicationModule();
-      if (this_present_applicationModule || that_present_applicationModule) {
-        if (!(this_present_applicationModule && that_present_applicationModule))
+      boolean this_present_gatewayId = true && this.isSetGatewayId();
+      boolean that_present_gatewayId = true && that.isSetGatewayId();
+      if (this_present_gatewayId || that_present_gatewayId) {
+        if (!(this_present_gatewayId && that_present_gatewayId))
           return false;
-        if (!this.applicationModule.equals(that.applicationModule))
+        if (!this.gatewayId.equals(that.gatewayId))
           return false;
       }
 
@@ -106096,19 +109062,15 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetAppModuleId()) ? 131071 : 524287);
-      if (isSetAppModuleId())
-        hashCode = hashCode * 8191 + appModuleId.hashCode();
-
-      hashCode = hashCode * 8191 + ((isSetApplicationModule()) ? 131071 : 524287);
-      if (isSetApplicationModule())
-        hashCode = hashCode * 8191 + applicationModule.hashCode();
+      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
+      if (isSetGatewayId())
+        hashCode = hashCode * 8191 + gatewayId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(updateApplicationModule_args other) {
+    public int compareTo(getAccessibleAppModules_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -106125,22 +109087,12 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-      if (isSetAppModuleId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
-        if (lastComparison != 0) {
-          return lastComparison;
-        }
-      }
-      lastComparison = java.lang.Boolean.valueOf(isSetApplicationModule()).compareTo(other.isSetApplicationModule());
+      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetApplicationModule()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationModule, other.applicationModule);
+      if (isSetGatewayId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -106162,7 +109114,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateApplicationModule_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAccessibleAppModules_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -106173,19 +109125,11 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("appModuleId:");
-      if (this.appModuleId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.appModuleId);
-      }
-      first = false;
-      if (!first) sb.append(", ");
-      sb.append("applicationModule:");
-      if (this.applicationModule == null) {
+      sb.append("gatewayId:");
+      if (this.gatewayId == null) {
         sb.append("null");
       } else {
-        sb.append(this.applicationModule);
+        sb.append(this.gatewayId);
       }
       first = false;
       sb.append(")");
@@ -106197,19 +109141,13 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
-      if (appModuleId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
-      }
-      if (applicationModule == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationModule' was not present! Struct: " + toString());
+      if (gatewayId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
       }
-      if (applicationModule != null) {
-        applicationModule.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -106228,15 +109166,15 @@ public class Airavata {
       }
     }
 
-    private static class updateApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateApplicationModule_argsStandardScheme getScheme() {
-        return new updateApplicationModule_argsStandardScheme();
+    private static class getAccessibleAppModules_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAccessibleAppModules_argsStandardScheme getScheme() {
+        return new getAccessibleAppModules_argsStandardScheme();
       }
     }
 
-    private static class updateApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateApplicationModule_args> {
+    private static class getAccessibleAppModules_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAccessibleAppModules_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -106255,19 +109193,10 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // APP_MODULE_ID
+            case 2: // GATEWAY_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.appModuleId = iprot.readString();
-                struct.setAppModuleIdIsSet(true);
-              } else { 
-                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-              }
-              break;
-            case 3: // APPLICATION_MODULE
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-                struct.applicationModule.read(iprot);
-                struct.setApplicationModuleIsSet(true);
+                struct.gatewayId = iprot.readString();
+                struct.setGatewayIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -106283,7 +109212,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -106292,14 +109221,9 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.appModuleId != null) {
-          oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
-          oprot.writeString(struct.appModuleId);
-          oprot.writeFieldEnd();
-        }
-        if (struct.applicationModule != null) {
-          oprot.writeFieldBegin(APPLICATION_MODULE_FIELD_DESC);
-          struct.applicationModule.write(oprot);
+        if (struct.gatewayId != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -106308,33 +109232,29 @@ public class Airavata {
 
     }
 
-    private static class updateApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateApplicationModule_argsTupleScheme getScheme() {
-        return new updateApplicationModule_argsTupleScheme();
+    private static class getAccessibleAppModules_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAccessibleAppModules_argsTupleScheme getScheme() {
+        return new getAccessibleAppModules_argsTupleScheme();
       }
     }
 
-    private static class updateApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateApplicationModule_args> {
+    private static class getAccessibleAppModules_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAccessibleAppModules_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        oprot.writeString(struct.appModuleId);
-        struct.applicationModule.write(oprot);
+        oprot.writeString(struct.gatewayId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.appModuleId = iprot.readString();
-        struct.setAppModuleIdIsSet(true);
-        struct.applicationModule = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-        struct.applicationModule.read(iprot);
-        struct.setApplicationModuleIsSet(true);
+        struct.gatewayId = iprot.readString();
+        struct.setGatewayIdIsSet(true);
       }
     }
 
@@ -106343,19 +109263,19 @@ public class Airavata {
     }
   }
 
-  public static class updateApplicationModule_result implements org.apache.thrift.TBase<updateApplicationModule_result, updateApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateApplicationModule_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateApplicationModule_result");
+  public static class getAccessibleAppModules_result implements org.apache.thrift.TBase<getAccessibleAppModules_result, getAccessibleAppModules_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAccessibleAppModules_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAccessibleAppModules_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new updateApplicationModule_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new updateApplicationModule_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAccessibleAppModules_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAccessibleAppModules_resultTupleSchemeFactory();
 
-    public boolean success; // required
+    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -106432,13 +109352,12 @@ public class Airavata {
     }
 
     // isset id assignments
-    private static final int __SUCCESS_ISSET_ID = 0;
-    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -106448,14 +109367,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateApplicationModule_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAccessibleAppModules_result.class, metaDataMap);
     }
 
-    public updateApplicationModule_result() {
+    public getAccessibleAppModules_result() {
     }
 
-    public updateApplicationModule_result(
-      boolean success,
+    public getAccessibleAppModules_result(
+      java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -106463,7 +109382,6 @@ public class Airavata {
     {
       this();
       this.success = success;
-      setSuccessIsSet(true);
       this.ire = ire;
       this.ace = ace;
       this.ase = ase;
@@ -106473,9 +109391,14 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public updateApplicationModule_result(updateApplicationModule_result other) {
-      __isset_bitfield = other.__isset_bitfield;
-      this.success = other.success;
+    public getAccessibleAppModules_result(getAccessibleAppModules_result other) {
+      if (other.isSetSuccess()) {
+        java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(other.success.size());
+        for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other_element));
+        }
+        this.success = __this__success;
+      }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -106490,48 +109413,63 @@ public class Airavata {
       }
     }
 
-    public updateApplicationModule_result deepCopy() {
-      return new updateApplicationModule_result(this);
+    public getAccessibleAppModules_result deepCopy() {
+      return new getAccessibleAppModules_result(this);
     }
 
     @Override
     public void clear() {
-      setSuccessIsSet(false);
-      this.success = false;
+      this.success = null;
       this.ire = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
     }
 
-    public boolean isSuccess() {
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule elem) {
+      if (this.success == null) {
+        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>();
+      }
+      this.success.add(elem);
+    }
+
+    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccess() {
       return this.success;
     }
 
-    public updateApplicationModule_result setSuccess(boolean success) {
+    public getAccessibleAppModules_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success) {
       this.success = success;
-      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      this.success = null;
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+      return this.success != null;
     }
 
     public void setSuccessIsSet(boolean value) {
-      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public org.apache.airavata.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public updateApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public getAccessibleAppModules_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -106555,7 +109493,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public updateApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public getAccessibleAppModules_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -106579,7 +109517,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public updateApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public getAccessibleAppModules_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -106603,7 +109541,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public updateApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public getAccessibleAppModules_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -106629,7 +109567,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.lang.Boolean)value);
+          setSuccess((java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>)value);
         }
         break;
 
@@ -106671,7 +109609,7 @@ public class Airavata {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return isSuccess();
+        return getSuccess();
 
       case IRE:
         return getIre();
@@ -106714,23 +109652,23 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof updateApplicationModule_result)
-        return this.equals((updateApplicationModule_result)that);
+      if (that instanceof getAccessibleAppModules_result)
+        return this.equals((getAccessibleAppModules_result)that);
       return false;
     }
 
-    public boolean equals(updateApplicationModule_result that) {
+    public boolean equals(getAccessibleAppModules_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true;
-      boolean that_present_success = true;
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (this.success != that.success)
+        if (!this.success.equals(that.success))
           return false;
       }
 
@@ -106777,7 +109715,9 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+      if (isSetSuccess())
+        hashCode = hashCode * 8191 + success.hashCode();
 
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
@@ -106799,7 +109739,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(updateApplicationModule_result other) {
+    public int compareTo(getAccessibleAppModules_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -106873,11 +109813,15 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("updateApplicationModule_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAccessibleAppModules_result(");
       boolean first = true;
 
       sb.append("success:");
-      sb.append(this.success);
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
       first = false;
       if (!first) sb.append(", ");
       sb.append("ire:");
@@ -106930,23 +109874,21 @@ public class Airavata {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
-        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
-        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class updateApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateApplicationModule_resultStandardScheme getScheme() {
-        return new updateApplicationModule_resultStandardScheme();
+    private static class getAccessibleAppModules_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAccessibleAppModules_resultStandardScheme getScheme() {
+        return new getAccessibleAppModules_resultStandardScheme();
       }
     }
 
-    private static class updateApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<updateApplicationModule_result> {
+    private static class getAccessibleAppModules_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAccessibleAppModules_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAccessibleAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -106957,8 +109899,19 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
-                struct.success = iprot.readBool();
+              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list134 = iprot.readListBegin();
+                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list134.size);
+                  org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem135;
+                  for (int _i136 = 0; _i136 < _list134.size; ++_i136)
+                  {
+                    _elem135 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+                    _elem135.read(iprot);
+                    struct.success.add(_elem135);
+                  }
+                  iprot.readListEnd();
+                }
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -107011,13 +109964,20 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, getAccessibleAppModules_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.isSetSuccess()) {
+        if (struct.success != null) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          oprot.writeBool(struct.success);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter137 : struct.success)
+            {
+              _iter137.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -107046,16 +110006,16 @@ public class Airavata {
 
     }
 
-    private static class updateApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public updateApplicationModule_resultTupleScheme getScheme() {
-        return new updateApplicationModule_resultTupleScheme();
+    private static class getAccessibleAppModules_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public getAccessibleAppModules_resultTupleScheme getScheme() {
+        return new getAccessibleAppModules_resultTupleScheme();
       }
     }
 
-    private static class updateApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<updateApplicationModule_result> {
+    private static class getAccessibleAppModules_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAccessibleAppModules_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -107075,7 +110035,13 @@ public class Airavata {
         }
         oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
-          oprot.writeBool(struct.success);
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter138 : struct.success)
+            {
+              _iter138.write(oprot);
+            }
+          }
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -107092,11 +110058,21 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, updateApplicationModule_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          struct.success = iprot.readBool();
+          {
+            org.apache.thrift.protocol.TList _list139 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list139.size);
+            org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem140;
+            for (int _i141 = 0; _i141 < _list139.size; ++_i141)
+            {
+              _elem140 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
+              _elem140.read(iprot);
+              struct.success.add(_elem140);
+            }
+          }
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -107127,22 +110103,22 @@ public class Airavata {
     }
   }
 
-  public static class getAllAppModules_args implements org.apache.thrift.TBase<getAllAppModules_args, getAllAppModules_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAllAppModules_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAppModules_args");
+  public static class deleteApplicationModule_args implements org.apache.thrift.TBase<deleteApplicationModule_args, deleteApplicationModule_args._Fields>, java.io.Serializable, Cloneable, Comparable<deleteApplicationModule_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteApplicationModule_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-    private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField APP_MODULE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("appModuleId", org.apache.thrift.protocol.TType.STRING, (short)2);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllAppModules_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllAppModules_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new deleteApplicationModule_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new deleteApplicationModule_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
-    public java.lang.String gatewayId; // required
+    public java.lang.String appModuleId; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      GATEWAY_ID((short)2, "gatewayId");
+      APP_MODULE_ID((short)2, "appModuleId");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -107159,8 +110135,8 @@ public class Airavata {
         switch(fieldId) {
           case 1: // AUTHZ_TOKEN
             return AUTHZ_TOKEN;
-          case 2: // GATEWAY_ID
-            return GATEWAY_ID;
+          case 2: // APP_MODULE_ID
+            return APP_MODULE_ID;
           default:
             return null;
         }
@@ -107206,51 +110182,51 @@ public class Airavata {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.AUTHZ_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("authzToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
-      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.APP_MODULE_ID, new org.apache.thrift.meta_data.FieldMetaData("appModuleId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAppModules_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteApplicationModule_args.class, metaDataMap);
     }
 
-    public getAllAppModules_args() {
+    public deleteApplicationModule_args() {
     }
 
-    public getAllAppModules_args(
+    public deleteApplicationModule_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String gatewayId)
+      java.lang.String appModuleId)
     {
       this();
       this.authzToken = authzToken;
-      this.gatewayId = gatewayId;
+      this.appModuleId = appModuleId;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getAllAppModules_args(getAllAppModules_args other) {
+    public deleteApplicationModule_args(deleteApplicationModule_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
-      if (other.isSetGatewayId()) {
-        this.gatewayId = other.gatewayId;
+      if (other.isSetAppModuleId()) {
+        this.appModuleId = other.appModuleId;
       }
     }
 
-    public getAllAppModules_args deepCopy() {
-      return new getAllAppModules_args(this);
+    public deleteApplicationModule_args deepCopy() {
+      return new deleteApplicationModule_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
-      this.gatewayId = null;
+      this.appModuleId = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public getAllAppModules_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public deleteApplicationModule_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -107270,27 +110246,27 @@ public class Airavata {
       }
     }
 
-    public java.lang.String getGatewayId() {
-      return this.gatewayId;
+    public java.lang.String getAppModuleId() {
+      return this.appModuleId;
     }
 
-    public getAllAppModules_args setGatewayId(java.lang.String gatewayId) {
-      this.gatewayId = gatewayId;
+    public deleteApplicationModule_args setAppModuleId(java.lang.String appModuleId) {
+      this.appModuleId = appModuleId;
       return this;
     }
 
-    public void unsetGatewayId() {
-      this.gatewayId = null;
+    public void unsetAppModuleId() {
+      this.appModuleId = null;
     }
 
-    /** Returns true if field gatewayId is set (has been assigned a value) and false otherwise */
-    public boolean isSetGatewayId() {
-      return this.gatewayId != null;
+    /** Returns true if field appModuleId is set (has been assigned a value) and false otherwise */
+    public boolean isSetAppModuleId() {
+      return this.appModuleId != null;
     }
 
-    public void setGatewayIdIsSet(boolean value) {
+    public void setAppModuleIdIsSet(boolean value) {
       if (!value) {
-        this.gatewayId = null;
+        this.appModuleId = null;
       }
     }
 
@@ -107304,11 +110280,11 @@ public class Airavata {
         }
         break;
 
-      case GATEWAY_ID:
+      case APP_MODULE_ID:
         if (value == null) {
-          unsetGatewayId();
+          unsetAppModuleId();
         } else {
-          setGatewayId((java.lang.String)value);
+          setAppModuleId((java.lang.String)value);
         }
         break;
 
@@ -107320,8 +110296,8 @@ public class Airavata {
       case AUTHZ_TOKEN:
         return getAuthzToken();
 
-      case GATEWAY_ID:
-        return getGatewayId();
+      case APP_MODULE_ID:
+        return getAppModuleId();
 
       }
       throw new java.lang.IllegalStateException();
@@ -107336,8 +110312,8 @@ public class Airavata {
       switch (field) {
       case AUTHZ_TOKEN:
         return isSetAuthzToken();
-      case GATEWAY_ID:
-        return isSetGatewayId();
+      case APP_MODULE_ID:
+        return isSetAppModuleId();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -107346,12 +110322,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getAllAppModules_args)
-        return this.equals((getAllAppModules_args)that);
+      if (that instanceof deleteApplicationModule_args)
+        return this.equals((deleteApplicationModule_args)that);
       return false;
     }
 
-    public boolean equals(getAllAppModules_args that) {
+    public boolean equals(deleteApplicationModule_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -107366,12 +110342,12 @@ public class Airavata {
           return false;
       }
 
-      boolean this_present_gatewayId = true && this.isSetGatewayId();
-      boolean that_present_gatewayId = true && that.isSetGatewayId();
-      if (this_present_gatewayId || that_present_gatewayId) {
-        if (!(this_present_gatewayId && that_present_gatewayId))
+      boolean this_present_appModuleId = true && this.isSetAppModuleId();
+      boolean that_present_appModuleId = true && that.isSetAppModuleId();
+      if (this_present_appModuleId || that_present_appModuleId) {
+        if (!(this_present_appModuleId && that_present_appModuleId))
           return false;
-        if (!this.gatewayId.equals(that.gatewayId))
+        if (!this.appModuleId.equals(that.appModuleId))
           return false;
       }
 
@@ -107386,15 +110362,15 @@ public class Airavata {
       if (isSetAuthzToken())
         hashCode = hashCode * 8191 + authzToken.hashCode();
 
-      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
-      if (isSetGatewayId())
-        hashCode = hashCode * 8191 + gatewayId.hashCode();
+      hashCode = hashCode * 8191 + ((isSetAppModuleId()) ? 131071 : 524287);
+      if (isSetAppModuleId())
+        hashCode = hashCode * 8191 + appModuleId.hashCode();
 
       return hashCode;
     }
 
     @Override
-    public int compareTo(getAllAppModules_args other) {
+    public int compareTo(deleteApplicationModule_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -107411,12 +110387,12 @@ public class Airavata {
           return lastComparison;
         }
       }
-      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+      lastComparison = java.lang.Boolean.valueOf(isSetAppModuleId()).compareTo(other.isSetAppModuleId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetGatewayId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayId, other.gatewayId);
+      if (isSetAppModuleId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.appModuleId, other.appModuleId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -107438,7 +110414,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAllAppModules_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("deleteApplicationModule_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -107449,11 +110425,11 @@ public class Airavata {
       }
       first = false;
       if (!first) sb.append(", ");
-      sb.append("gatewayId:");
-      if (this.gatewayId == null) {
+      sb.append("appModuleId:");
+      if (this.appModuleId == null) {
         sb.append("null");
       } else {
-        sb.append(this.gatewayId);
+        sb.append(this.appModuleId);
       }
       first = false;
       sb.append(")");
@@ -107465,8 +110441,8 @@ public class Airavata {
       if (authzToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
       }
-      if (gatewayId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
+      if (appModuleId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'appModuleId' was not present! Struct: " + toString());
       }
       // check for sub-struct validity
       if (authzToken != null) {
@@ -107490,15 +110466,15 @@ public class Airavata {
       }
     }
 
-    private static class getAllAppModules_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAllAppModules_argsStandardScheme getScheme() {
-        return new getAllAppModules_argsStandardScheme();
+    private static class deleteApplicationModule_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public deleteApplicationModule_argsStandardScheme getScheme() {
+        return new deleteApplicationModule_argsStandardScheme();
       }
     }
 
-    private static class getAllAppModules_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAllAppModules_args> {
+    private static class deleteApplicationModule_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<deleteApplicationModule_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getAllAppModules_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -107517,10 +110493,10 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
-            case 2: // GATEWAY_ID
+            case 2: // APP_MODULE_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.gatewayId = iprot.readString();
-                struct.setGatewayIdIsSet(true);
+                struct.appModuleId = iprot.readString();
+                struct.setAppModuleIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -107536,7 +110512,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getAllAppModules_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, deleteApplicationModule_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -107545,9 +110521,9 @@ public class Airavata {
           struct.authzToken.write(oprot);
           oprot.writeFieldEnd();
         }
-        if (struct.gatewayId != null) {
-          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
-          oprot.writeString(struct.gatewayId);
+        if (struct.appModuleId != null) {
+          oprot.writeFieldBegin(APP_MODULE_ID_FIELD_DESC);
+          oprot.writeString(struct.appModuleId);
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -107556,29 +110532,29 @@ public class Airavata {
 
     }
 
-    private static class getAllAppModules_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAllAppModules_argsTupleScheme getScheme() {
-        return new getAllAppModules_argsTupleScheme();
+    private static class deleteApplicationModule_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public deleteApplicationModule_argsTupleScheme getScheme() {
+        return new deleteApplicationModule_argsTupleScheme();
       }
     }
 
-    private static class getAllAppModules_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAllAppModules_args> {
+    private static class deleteApplicationModule_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<deleteApplicationModule_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, deleteApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
-        oprot.writeString(struct.gatewayId);
+        oprot.writeString(struct.appModuleId);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, deleteApplicationModule_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
-        struct.gatewayId = iprot.readString();
-        struct.setGatewayIdIsSet(true);
+        struct.appModuleId = iprot.readString();
+        struct.setAppModuleIdIsSet(true);
       }
     }
 
@@ -107587,19 +110563,19 @@ public class Airavata {
     }
   }
 
-  public static class getAllAppModules_result implements org.apache.thrift.TBase<getAllAppModules_result, getAllAppModules_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAllAppModules_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllAppModules_result");
+  public static class deleteApplicationModule_result implements org.apache.thrift.TBase<deleteApplicationModule_result, deleteApplicationModule_result._Fields>, java.io.Serializable, Cloneable, Comparable<deleteApplicationModule_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteApplicationModule_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllAppModules_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllAppModules_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new deleteApplicationModule_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new deleteApplicationModule_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success; // required
+    public boolean success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -107676,12 +110652,13 @@ public class Airavata {
     }
 
     // isset id assignments
+    private static final int __SUCCESS_ISSET_ID = 0;
+    private byte __isset_bitfield = 0;
     public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class))));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -107691,14 +110668,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllAppModules_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteApplicationModule_result.class, metaDataMap);
     }
 
-    public getAllAppModules_result() {
+    public deleteApplicationModule_result() {
     }
 
-    public getAllAppModules_result(
-      java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success,
+    public deleteApplicationModule_result(
+      boolean success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -107706,6 +110683,7 @@ public class Airavata {
     {
       this();
       this.success = success;
+      setSuccessIsSet(true);
       this.ire = ire;
       this.ace = ace;
       this.ase = ase;
@@ -107715,14 +110693,9 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getAllAppModules_result(getAllAppModules_result other) {
-      if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(other.success.size());
-        for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other_element));
-        }
-        this.success = __this__success;
-      }
+    public deleteApplicationModule_result(deleteApplicationModule_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
       }
@@ -107737,63 +110710,48 @@ public class Airavata {
       }
     }
 
-    public getAllAppModules_result deepCopy() {
-      return new getAllAppModules_result(this);
+    public deleteApplicationModule_result deepCopy() {
+      return new deleteApplicationModule_result(this);
     }
 
     @Override
     public void clear() {
-      this.success = null;
+      setSuccessIsSet(false);
+      this.success = false;
       this.ire = null;
       this.ace = null;
       this.ase = null;
       this.ae = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccess() {
+    public boolean isSuccess() {
       return this.success;
     }
 
-    public getAllAppModules_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success) {
+    public deleteApplicationModule_result setSuccess(boolean success) {
       this.success = success;
+      setSuccessIsSet(true);
       return this;
     }
 
     public void unsetSuccess() {
-      this.success = null;
+      __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     /** Returns true if field success is set (has been assigned a value) and false otherwise */
     public boolean isSetSuccess() {
-      return this.success != null;
+      return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
     }
 
     public void setSuccessIsSet(boolean value) {
-      if (!value) {
-        this.success = null;
-      }
+      __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
     }
 
     public org.apache.airavata.model.error.InvalidRequestException getIre() {
       return this.ire;
     }
 
-    public getAllAppModules_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public deleteApplicationModule_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -107817,7 +110775,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getAllAppModules_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public deleteApplicationModule_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -107841,7 +110799,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getAllAppModules_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public deleteApplicationModule_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -107865,7 +110823,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getAllAppModules_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public deleteApplicationModule_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -107891,7 +110849,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>)value);
+          setSuccess((java.lang.Boolean)value);
         }
         break;
 
@@ -107933,7 +110891,7 @@ public class Airavata {
     public java.lang.Object getFieldValue(_Fields field) {
       switch (field) {
       case SUCCESS:
-        return getSuccess();
+        return isSuccess();
 
       case IRE:
         return getIre();
@@ -107976,23 +110934,23 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getAllAppModules_result)
-        return this.equals((getAllAppModules_result)that);
+      if (that instanceof deleteApplicationModule_result)
+        return this.equals((deleteApplicationModule_result)that);
       return false;
     }
 
-    public boolean equals(getAllAppModules_result that) {
+    public boolean equals(deleteApplicationModule_result that) {
       if (that == null)
         return false;
       if (this == that)
         return true;
 
-      boolean this_present_success = true && this.isSetSuccess();
-      boolean that_present_success = true && that.isSetSuccess();
+      boolean this_present_success = true;
+      boolean that_present_success = true;
       if (this_present_success || that_present_success) {
         if (!(this_present_success && that_present_success))
           return false;
-        if (!this.success.equals(that.success))
+        if (this.success != that.success)
           return false;
       }
 
@@ -108039,9 +110997,7 @@ public class Airavata {
     public int hashCode() {
       int hashCode = 1;
 
-      hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
-      if (isSetSuccess())
-        hashCode = hashCode * 8191 + success.hashCode();
+      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
 
       hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
       if (isSetIre())
@@ -108063,7 +111019,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getAllAppModules_result other) {
+    public int compareTo(deleteApplicationModule_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -108137,15 +111093,11 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAllAppModules_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("deleteApplicationModule_result(");
       boolean first = true;
 
       sb.append("success:");
-      if (this.success == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.success);
-      }
+      sb.append(this.success);
       first = false;
       if (!first) sb.append(", ");
       sb.append("ire:");
@@ -108198,21 +111150,23 @@ public class Airavata {
 
     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
       try {
+        // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+        __isset_bitfield = 0;
         read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
       } catch (org.apache.thrift.TException te) {
         throw new java.io.IOException(te);
       }
     }
 
-    private static class getAllAppModules_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAllAppModules_resultStandardScheme getScheme() {
-        return new getAllAppModules_resultStandardScheme();
+    private static class deleteApplicationModule_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public deleteApplicationModule_resultStandardScheme getScheme() {
+        return new deleteApplicationModule_resultStandardScheme();
       }
     }
 
-    private static class getAllAppModules_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAllAppModules_result> {
+    private static class deleteApplicationModule_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<deleteApplicationModule_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getAllAppModules_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, deleteApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -108223,19 +111177,8 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list126 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list126.size);
-                  org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem127;
-                  for (int _i128 = 0; _i128 < _list126.size; ++_i128)
-                  {
-                    _elem127 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-                    _elem127.read(iprot);
-                    struct.success.add(_elem127);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+                struct.success = iprot.readBool();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -108288,20 +111231,13 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getAllAppModules_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, deleteApplicationModule_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.success != null) {
+        if (struct.isSetSuccess()) {
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-          {
-            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter129 : struct.success)
-            {
-              _iter129.write(oprot);
-            }
-            oprot.writeListEnd();
-          }
+          oprot.writeBool(struct.success);
           oprot.writeFieldEnd();
         }
         if (struct.ire != null) {
@@ -108330,16 +111266,16 @@ public class Airavata {
 
     }
 
-    private static class getAllAppModules_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAllAppModules_resultTupleScheme getScheme() {
-        return new getAllAppModules_resultTupleScheme();
+    private static class deleteApplicationModule_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public deleteApplicationModule_resultTupleScheme getScheme() {
+        return new deleteApplicationModule_resultTupleScheme();
       }
     }
 
-    private static class getAllAppModules_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAllAppModules_result> {
+    private static class deleteApplicationModule_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<deleteApplicationModule_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, deleteApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet optionals = new java.util.BitSet();
         if (struct.isSetSuccess()) {
@@ -108359,13 +111295,7 @@ public class Airavata {
         }
         oprot.writeBitSet(optionals, 5);
         if (struct.isSetSuccess()) {
-          {
-            oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _iter130 : struct.success)
-            {
-              _iter130.write(oprot);
-            }
-          }
+          oprot.writeBool(struct.success);
         }
         if (struct.isSetIre()) {
           struct.ire.write(oprot);
@@ -108382,21 +111312,11 @@ public class Airavata {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getAllAppModules_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, deleteApplicationModule_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(5);
         if (incoming.get(0)) {
-          {
-            org.apache.thrift.protocol.TList _list131 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list131.size);
-            org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem132;
-            for (int _i133 = 0; _i133 < _list131.size; ++_i133)
-            {
-              _elem132 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-              _elem132.read(iprot);
-              struct.success.add(_elem132);
-            }
-          }
+          struct.success = iprot.readBool();
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
@@ -108427,22 +111347,25 @@ public class Airavata {
     }
   }
 
-  public static class getAccessibleAppModules_args implements org.apache.thrift.TBase<getAccessibleAppModules_args, getAccessibleAppModules_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAccessibleAppModules_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAccessibleAppModules_args");
+  public static class registerApplicationDeployment_args implements org.apache.thrift.TBase<registerApplicationDeployment_args, registerApplicationDeployment_args._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationDeployment_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationDeployment_args");
 
     private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField APPLICATION_DEPLOYMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDeployment", org.apache.thrift.protocol.TType.STRUCT, (short)3);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAccessibleAppModules_argsStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAccessibleAppModules_argsTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationDeployment_argsStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationDeployment_argsTupleSchemeFactory();
 
     public org.apache.airavata.model.security.AuthzToken authzToken; // required
     public java.lang.String gatewayId; // required
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment; // 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 {
       AUTHZ_TOKEN((short)1, "authzToken"),
-      GATEWAY_ID((short)2, "gatewayId");
+      GATEWAY_ID((short)2, "gatewayId"),
+      APPLICATION_DEPLOYMENT((short)3, "applicationDeployment");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -108461,6 +111384,8 @@ public class Airavata {
             return AUTHZ_TOKEN;
           case 2: // GATEWAY_ID
             return GATEWAY_ID;
+          case 3: // APPLICATION_DEPLOYMENT
+            return APPLICATION_DEPLOYMENT;
           default:
             return null;
         }
@@ -108508,49 +111433,57 @@ public class Airavata {
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.security.AuthzToken.class)));
       tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.APPLICATION_DEPLOYMENT, new org.apache.thrift.meta_data.FieldMetaData("applicationDeployment", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAccessibleAppModules_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationDeployment_args.class, metaDataMap);
     }
 
-    public getAccessibleAppModules_args() {
+    public registerApplicationDeployment_args() {
     }
 
-    public getAccessibleAppModules_args(
+    public registerApplicationDeployment_args(
       org.apache.airavata.model.security.AuthzToken authzToken,
-      java.lang.String gatewayId)
+      java.lang.String gatewayId,
+      org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment)
     {
       this();
       this.authzToken = authzToken;
       this.gatewayId = gatewayId;
+      this.applicationDeployment = applicationDeployment;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getAccessibleAppModules_args(getAccessibleAppModules_args other) {
+    public registerApplicationDeployment_args(registerApplicationDeployment_args other) {
       if (other.isSetAuthzToken()) {
         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
       }
       if (other.isSetGatewayId()) {
         this.gatewayId = other.gatewayId;
       }
+      if (other.isSetApplicationDeployment()) {
+        this.applicationDeployment = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription(other.applicationDeployment);
+      }
     }
 
-    public getAccessibleAppModules_args deepCopy() {
-      return new getAccessibleAppModules_args(this);
+    public registerApplicationDeployment_args deepCopy() {
+      return new registerApplicationDeployment_args(this);
     }
 
     @Override
     public void clear() {
       this.authzToken = null;
       this.gatewayId = null;
+      this.applicationDeployment = null;
     }
 
     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
       return this.authzToken;
     }
 
-    public getAccessibleAppModules_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
+    public registerApplicationDeployment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
       this.authzToken = authzToken;
       return this;
     }
@@ -108574,7 +111507,7 @@ public class Airavata {
       return this.gatewayId;
     }
 
-    public getAccessibleAppModules_args setGatewayId(java.lang.String gatewayId) {
+    public registerApplicationDeployment_args setGatewayId(java.lang.String gatewayId) {
       this.gatewayId = gatewayId;
       return this;
     }
@@ -108594,6 +111527,30 @@ public class Airavata {
       }
     }
 
+    public org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription getApplicationDeployment() {
+      return this.applicationDeployment;
+    }
+
+    public registerApplicationDeployment_args setApplicationDeployment(org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment) {
+      this.applicationDeployment = applicationDeployment;
+      return this;
+    }
+
+    public void unsetApplicationDeployment() {
+      this.applicationDeployment = null;
+    }
+
+    /** Returns true if field applicationDeployment is set (has been assigned a value) and false otherwise */
+    public boolean isSetApplicationDeployment() {
+      return this.applicationDeployment != null;
+    }
+
+    public void setApplicationDeploymentIsSet(boolean value) {
+      if (!value) {
+        this.applicationDeployment = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case AUTHZ_TOKEN:
@@ -108612,6 +111569,14 @@ public class Airavata {
         }
         break;
 
+      case APPLICATION_DEPLOYMENT:
+        if (value == null) {
+          unsetApplicationDeployment();
+        } else {
+          setApplicationDeployment((org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription)value);
+        }
+        break;
+
       }
     }
 
@@ -108623,6 +111588,9 @@ public class Airavata {
       case GATEWAY_ID:
         return getGatewayId();
 
+      case APPLICATION_DEPLOYMENT:
+        return getApplicationDeployment();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -108638,6 +111606,8 @@ public class Airavata {
         return isSetAuthzToken();
       case GATEWAY_ID:
         return isSetGatewayId();
+      case APPLICATION_DEPLOYMENT:
+        return isSetApplicationDeployment();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -108646,12 +111616,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getAccessibleAppModules_args)
-        return this.equals((getAccessibleAppModules_args)that);
+      if (that instanceof registerApplicationDeployment_args)
+        return this.equals((registerApplicationDeployment_args)that);
       return false;
     }
 
-    public boolean equals(getAccessibleAppModules_args that) {
+    public boolean equals(registerApplicationDeployment_args that) {
       if (that == null)
         return false;
       if (this == that)
@@ -108675,6 +111645,15 @@ public class Airavata {
           return false;
       }
 
+      boolean this_present_applicationDeployment = true && this.isSetApplicationDeployment();
+      boolean that_present_applicationDeployment = true && that.isSetApplicationDeployment();
+      if (this_present_applicationDeployment || that_present_applicationDeployment) {
+        if (!(this_present_applicationDeployment && that_present_applicationDeployment))
+          return false;
+        if (!this.applicationDeployment.equals(that.applicationDeployment))
+          return false;
+      }
+
       return true;
     }
 
@@ -108690,11 +111669,15 @@ public class Airavata {
       if (isSetGatewayId())
         hashCode = hashCode * 8191 + gatewayId.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetApplicationDeployment()) ? 131071 : 524287);
+      if (isSetApplicationDeployment())
+        hashCode = hashCode * 8191 + applicationDeployment.hashCode();
+
       return hashCode;
     }
 
     @Override
-    public int compareTo(getAccessibleAppModules_args other) {
+    public int compareTo(registerApplicationDeployment_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -108721,6 +111704,16 @@ public class Airavata {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetApplicationDeployment()).compareTo(other.isSetApplicationDeployment());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetApplicationDeployment()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.applicationDeployment, other.applicationDeployment);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -108738,7 +111731,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAccessibleAppModules_args(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationDeployment_args(");
       boolean first = true;
 
       sb.append("authzToken:");
@@ -108756,6 +111749,14 @@ public class Airavata {
         sb.append(this.gatewayId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("applicationDeployment:");
+      if (this.applicationDeployment == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.applicationDeployment);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -108768,10 +111769,16 @@ public class Airavata {
       if (gatewayId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayId' was not present! Struct: " + toString());
       }
+      if (applicationDeployment == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'applicationDeployment' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
       if (authzToken != null) {
         authzToken.validate();
       }
+      if (applicationDeployment != null) {
+        applicationDeployment.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -108790,15 +111797,15 @@ public class Airavata {
       }
     }
 
-    private static class getAccessibleAppModules_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAccessibleAppModules_argsStandardScheme getScheme() {
-        return new getAccessibleAppModules_argsStandardScheme();
+    private static class registerApplicationDeployment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationDeployment_argsStandardScheme getScheme() {
+        return new registerApplicationDeployment_argsStandardScheme();
       }
     }
 
-    private static class getAccessibleAppModules_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAccessibleAppModules_args> {
+    private static class registerApplicationDeployment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationDeployment_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationDeployment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -108825,6 +111832,15 @@ public class Airavata {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 3: // APPLICATION_DEPLOYMENT
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.applicationDeployment = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription();
+                struct.applicationDeployment.read(iprot);
+                struct.setApplicationDeploymentIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -108836,7 +111852,7 @@ public class Airavata {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, registerApplicationDeployment_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -108850,35 +111866,44 @@ public class Airavata {
           oprot.writeString(struct.gatewayId);
           oprot.writeFieldEnd();
         }
+        if (struct.applicationDeployment != null) {
+          oprot.writeFieldBegin(APPLICATION_DEPLOYMENT_FIELD_DESC);
+          struct.applicationDeployment.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class getAccessibleAppModules_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAccessibleAppModules_argsTupleScheme getScheme() {
-        return new getAccessibleAppModules_argsTupleScheme();
+    private static class registerApplicationDeployment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationDeployment_argsTupleScheme getScheme() {
+        return new registerApplicationDeployment_argsTupleScheme();
       }
     }
 
-    private static class getAccessibleAppModules_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getAccessibleAppModules_args> {
+    private static class registerApplicationDeployment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<registerApplicationDeployment_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, registerApplicationDeployment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken.write(oprot);
         oprot.writeString(struct.gatewayId);
+        struct.applicationDeployment.write(oprot);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, getAccessibleAppModules_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, registerApplicationDeployment_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
         struct.authzToken.read(iprot);
         struct.setAuthzTokenIsSet(true);
         struct.gatewayId = iprot.readString();
         struct.setGatewayIdIsSet(true);
+        struct.applicationDeployment = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription();
+        struct.applicationDeployment.read(iprot);
+        struct.setApplicationDeploymentIsSet(true);
       }
     }
 
@@ -108887,19 +111912,19 @@ public class Airavata {
     }
   }
 
-  public static class getAccessibleAppModules_result implements org.apache.thrift.TBase<getAccessibleAppModules_result, getAccessibleAppModules_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAccessibleAppModules_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAccessibleAppModules_result");
+  public static class registerApplicationDeployment_result implements org.apache.thrift.TBase<registerApplicationDeployment_result, registerApplicationDeployment_result._Fields>, java.io.Serializable, Cloneable, Comparable<registerApplicationDeployment_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("registerApplicationDeployment_result");
 
-    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
 
-    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAccessibleAppModules_resultStandardSchemeFactory();
-    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAccessibleAppModules_resultTupleSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new registerApplicationDeployment_resultStandardSchemeFactory();
+    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new registerApplicationDeployment_resultTupleSchemeFactory();
 
-    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success; // required
+    public java.lang.String success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
     public org.apache.airavata.model.error.AiravataSystemException ase; // required
@@ -108980,8 +112005,7 @@ public class Airavata {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule.class))));
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.InvalidRequestException.class)));
       tmpMap.put(_Fields.ACE, new org.apache.thrift.meta_data.FieldMetaData("ace", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -108991,14 +112015,14 @@ public class Airavata {
       tmpMap.put(_Fields.AE, new org.apache.thrift.meta_data.FieldMetaData("ae", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.error.AuthorizationException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAccessibleAppModules_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(registerApplicationDeployment_result.class, metaDataMap);
     }
 
-    public getAccessibleAppModules_result() {
+    public registerApplicationDeployment_result() {
     }
 
-    public getAccessibleAppModules_result(
-      java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success,
+    public registerApplicationDeployment_result(
+      java.lang.String success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.AiravataClientException ace,
       org.apache.airavata.model.error.AiravataSystemException ase,
@@ -109015,13 +112039,9 @@ public class Airavata {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public getAccessibleAppModules_result(getAccessibleAppModules_result other) {
+    public registerApplicationDeployment_result(registerApplicationDeployment_result other) {
       if (other.isSetSuccess()) {
-        java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> __this__success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(other.success.size());
-        for (org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule(other_element));
-        }
-        this.success = __this__success;
+        this.success = other.success;
       }
       if (other.isSetIre()) {
         this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
@@ -109037,8 +112057,8 @@ public class Airavata {
       }
     }
 
-    public getAccessibleAppModules_result deepCopy() {
-      return new getAccessibleAppModules_result(this);
+    public registerApplicationDeployment_result deepCopy() {
+      return new registerApplicationDeployment_result(this);
     }
 
     @Override
@@ -109050,26 +112070,11 @@ public class Airavata {
       this.ae = null;
     }
 
-    public int getSuccessSize() {
-      return (this.success == null) ? 0 : this.success.size();
-    }
-
-    public java.util.Iterator<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccessIterator() {
-      return (this.success == null) ? null : this.success.iterator();
-    }
-
-    public void addToSuccess(org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule elem) {
-      if (this.success == null) {
-        this.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>();
-      }
-      this.success.add(elem);
-    }
-
-    public java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> getSuccess() {
+    public java.lang.String getSuccess() {
       return this.success;
     }
 
-    public getAccessibleAppModules_result setSuccess(java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> success) {
+    public registerApplicationDeployment_result setSuccess(java.lang.String success) {
       this.success = success;
       return this;
     }
@@ -109093,7 +112098,7 @@ public class Airavata {
       return this.ire;
     }
 
-    public getAccessibleAppModules_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
+    public registerApplicationDeployment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
       this.ire = ire;
       return this;
     }
@@ -109117,7 +112122,7 @@ public class Airavata {
       return this.ace;
     }
 
-    public getAccessibleAppModules_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
+    public registerApplicationDeployment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
       this.ace = ace;
       return this;
     }
@@ -109141,7 +112146,7 @@ public class Airavata {
       return this.ase;
     }
 
-    public getAccessibleAppModules_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
+    public registerApplicationDeployment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
       this.ase = ase;
       return this;
     }
@@ -109165,7 +112170,7 @@ public class Airavata {
       return this.ae;
     }
 
-    public getAccessibleAppModules_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
+    public registerApplicationDeployment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
       this.ae = ae;
       return this;
     }
@@ -109191,7 +112196,7 @@ public class Airavata {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>)value);
+          setSuccess((java.lang.String)value);
         }
         break;
 
@@ -109276,12 +112281,12 @@ public class Airavata {
     public boolean equals(java.lang.Object that) {
       if (that == null)
         return false;
-      if (that instanceof getAccessibleAppModules_result)
-        return this.equals((getAccessibleAppModules_result)that);
+      if (that instanceof registerApplicationDeployment_result)
+        return this.equals((registerApplicationDeployment_result)that);
       return false;
     }
 
-    public boolean equals(getAccessibleAppModules_result that) {
+    public boolean equals(registerApplicationDeployment_result that) {
       if (that == null)
         return false;
       if (this == that)
@@ -109363,7 +112368,7 @@ public class Airavata {
     }
 
     @Override
-    public int compareTo(getAccessibleAppModules_result other) {
+    public int compareTo(registerApplicationDeployment_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -109437,7 +112442,7 @@ public class Airavata {
 
     @Override
     public java.lang.String toString() {
-      java.lang.StringBuilder sb = new java.lang.StringBuilder("getAccessibleAppModules_result(");
+      java.lang.StringBuilder sb = new java.lang.StringBuilder("registerApplicationDeployment_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -109504,15 +112509,15 @@ public class Airavata {
       }
     }
 
-    private static class getAccessibleAppModules_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-      public getAccessibleAppModules_resultStandardScheme getScheme() {
-        return new getAccessibleAppModules_resultStandardScheme();
+    private static class registerApplicationDeployment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+      public registerApplicationDeployment_resultStandardScheme getScheme() {
+        return new registerApplicationDeployment_resultStandardScheme();
       }
     }
 
-    private static class getAccessibleAppModules_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<getAccessibleAppModules_result> {
+    private static class registerApplicationDeployment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<registerApplicationDeployment_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, getAccessibleAppModules_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, registerApplicationDeployment_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -109523,19 +112528,8 @@ public class Airavata {
           }
           switch (schemeField.id) {
             case 0: // SUCCESS
-              if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
-                {
-                  org.apache.thrift.protocol.TList _list134 = iprot.readListBegin();
-                  struct.success = new java.util.ArrayList<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>(_list134.size);
-                  org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule _elem135;
-                  for (int _i136 = 0; _i136 < _list134.size; ++_i136)
-                  {
-                    _elem135 = new org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule();
-                    _elem135.read(iprot);
-                    struct.success.add(_elem135);
-                  }
-                  iprot.readListEnd();
-                }
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.success = iprot.readString();
                 struct.setSuccessIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -109588,20 +112582,13 @@ public class Airavata {
         struct.validate();
       }
... 94570 lines suppressed ...