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 2018/10/02 18:37:43 UTC

[airavata] 04/04: Merge branch 'iu-ldap-cybergateway-group' into develop

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

commit 70cfbcfc92ac402f842cee5f9e6c648d3dbd15e2
Merge: bd04f0e d799876
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Oct 2 14:30:25 2018 -0400

    Merge branch 'iu-ldap-cybergateway-group' into develop

 .../api/server/handler/AiravataServerHandler.java  |    30 +
 .../java/org/apache/airavata/api/Airavata.java     | 37489 ++++++++++---------
 .../main/resources/lib/Airavata/API/Airavata.php   |   381 +
 .../accountprovisioning/SSHAccountManager.java     |    25 +-
 .../accountprovisioning/SSHAccountProvisioner.java |     9 +
 .../provisioner/IULdapSSHAccountProvisioner.java   |   165 +-
 .../IULdapSSHAccountProvisionerProvider.java       |     6 +-
 .../provisioner/TestSSHAccountProvisioner.java     |     5 +
 .../airavata-apis/airavata_api.thrift              |     9 +
 9 files changed, 20094 insertions(+), 18025 deletions(-)

diff --cc airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index b068280,c0acbb1..002b5bd
--- 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
@@@ -2534,9 -2631,18 +2534,18 @@@ public class Airavata 
       * @param computeResourceId
       * @param userId
       */
 -    public boolean doesUserHaveSSHAccount(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String userId) 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 doesUserHaveSSHAccount(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String userId) 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;
  
      /**
+      * Check if SSH account setup is complete for this user on the given compute resource.
+      * 
+      * @param authzToken
+      * @param computeResourceId
+      * @param airavataCredStoreToken
+      */
 -    public boolean isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken) 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 isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken) 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;
+ 
+     /**
       * Setup and return a UserComputeResourcePreference object for this user to SSH into the given compute resource with
       * the given SSH credential. This method will only work if the compute resource has an SSHAccountProvisioner
       * configured for it. The returned UserComputeResourcePreference object is not saved; it is up to the client to
@@@ -2948,434 -3036,374 +2957,436 @@@
       * 
       * @param authzToken
       * @param resourceId
 -     * @param resourceType
       * @param userPermissionList
       */
 -    public boolean shareResourceWithUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, Map<String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationExc [...]
 -
 -    public boolean revokeSharingOfResourceFromUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, Map<String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.Author [...]
 -
 -    public List<String> getAllAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, 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. [...]
 -
 -    public String createGroup(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.group.GroupModel groupModel) 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 updateGroup(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.group.GroupModel groupModel) 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 deleteGroup(org.apache.airavata.model.security.AuthzToken authzToken, String groupId, String ownerId) 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 org.apache.airavata.model.group.GroupModel getGroup(org.apache.airavata.model.security.AuthzToken authzToken, String groupId) 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 List<org.apache.airavata.model.group.GroupModel> getAllGroupsUserBelongs(org.apache.airavata.model.security.AuthzToken authzToken, String userName) 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 interface AsyncIface {
 -
 -    public void getAPIVersion(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void isUserExists(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllUsersInGateway(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateGateway(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getGateway(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteGateway(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGateways(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void isGatewayExist(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getNotification(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String notificationId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, String description, org.apache.airavata.model.credential.store.CredentialOwnerType credentialOwnerType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerPwdCredential(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String portalUserName, String loginUserName, String password, String description, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, String airavataCredStoreToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGatewaySSHPubKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllCredentialSummaryForGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.credential.store.SummaryType type, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllCredentialSummaryForUsersInGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.credential.store.SummaryType type, String gatewayId, String userId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGatewayPWDCredentials(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, String airavataCredStoreToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deletePWDCredential(org.apache.airavata.model.security.AuthzToken authzToken, String airavataCredStoreToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void createProject(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.workspace.Project project, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId, org.apache.airavata.model.workspace.Project updatedProject, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getUserProjects(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void searchProjects(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, Map<org.apache.airavata.model.experiment.ProjectSearchFields,String> filters, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void searchExperiments(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, Map<org.apache.airavata.model.experiment.ExperimentSearchFields,String> filters, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperimentStatistics(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, long fromTime, long toTime, String userName, String applicationName, String resourceHostName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperimentsInProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getUserExperiments(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void createExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.experiment.ExperimentModel experiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String experimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getDetailedExperimentTree(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.airavata.model.experiment.ExperimentModel experiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateExperimentConfiguration(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateResourceScheduleing(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel resourceScheduling, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void validateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void launchExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperimentStatus(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getExperimentOutputs(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getIntermediateOutputs(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getJobStatuses(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getJobDetails(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void cloneExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String existingExperimentID, String newExperimentName, String newExperimentProjectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void cloneExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, String existingExperimentID, String newExperimentName, String newExperimentProjectId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void terminateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, String appModuleId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllAppModules(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, String appDeploymentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, String appDeploymentId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, String appDeploymentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllApplicationDeployments(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAppModuleDeployedResources(org.apache.airavata.model.security.AuthzToken authzToken, String appModuleId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void cloneApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, String existingAppInterfaceID, String newApplicationName, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllApplicationInterfaceNames(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllApplicationInterfaces(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getApplicationInputs(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getApplicationOutputs(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAvailableAppInterfaceComputeResources(org.apache.airavata.model.security.AuthzToken authzToken, String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllComputeResourceNames(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, String storageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllStorageResourceNames(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, String storageResourceId, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, String storageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addLocalSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateLocalSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getLocalJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addSSHJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addSSHForkJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getSSHJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addUNICOREJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getUnicoreJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addCloudJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission cloudSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getCloudJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateSSHJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateCloudJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateUnicoreJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addLocalDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateLocalDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getLocalDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addSCPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateSCPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getSCPDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getUnicoreDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addGridFTPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateGridFTPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getGridFTPDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void changeJobSubmissionPriority(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, int newPriorityOrder, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void changeDataMovementPriority(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, int newPriorityOrder, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void changeJobSubmissionPriorities(org.apache.airavata.model.security.AuthzToken authzToken, Map<String,Integer> jobSubmissionPriorityMap, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void changeDataMovementPriorities(org.apache.airavata.model.security.AuthzToken authzToken, Map<String,Integer> dataMovementPriorityMap, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteJobSubmissionInterface(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String jobSubmissionInterfaceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteDataMovementInterface(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.DMType dataMoveType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager resourceJobManager, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, String resourceJobManagerId, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager updatedResourceJobManager, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, String resourceJobManagerId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, String resourceJobManagerId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteBatchQueue(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String queueName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void registerGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void deleteGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void addGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String storageResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String storageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGatewayComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGatewayStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void getAllGatewayResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 -
 -    public void updateGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String storageId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean shareResourceWithUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList) 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.TEx [...]
  
 -    public void deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String computeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean shareResourceWithGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> groupPermissionList) 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.T [...]
  
 -    public void deleteGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String storageId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean revokeSharingOfResourceFromUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList) 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. [...]
  
 -    public void getSSHAccountProvisioners(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean revokeSharingOfResourceFromGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> groupPermissionList) 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.apach [...]
  
 -    public void doesUserHaveSSHAccount(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String userId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public java.util.List<java.lang.String> getAllAccessibleUsers(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 void isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    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 void setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String userId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 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 void registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 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;
  
 -    public void getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void updateGroupResourceProfile(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;
  
 -    public void updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile getGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId) 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 void deleteUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean removeGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId) 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 void addUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> getGroupResourceList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId) 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 void addUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean removeGroupComputePrefs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String groupResourceProfileId) 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 void getUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean removeGroupComputeResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId) 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 void getUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public boolean removeGroupBatchQueueResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId) 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 void getAllUserComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference getGroupComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String groupResourceProfileId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.Authorizatio [...]
  
 -    public void getAllUserStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy getGroupComputeResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId) 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 void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy getBatchQueueResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId) 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 void updateUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> getGroupComputeResourcePrefList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId) 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 [...]
  
 -    public void updateUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> getGroupBatchQueueResourcePolicyList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId) 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. [...]
  
 -    public void deleteUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> getGroupComputeResourcePolicyList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId) 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 [...]
  
 -    public void deleteUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    /**
 +     * GatewayGroups API methods
 +     * 
 +     * @param authzToken
 +     */
 +    public org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups getGatewayGroups(org.apache.airavata.model.security.AuthzToken authzToken) 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 interface AsyncIface {
 +
 +    public void getAPIVersion(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void isUserExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addGateway(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Gateway gateway, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllUsersInGateway(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateGateway(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.workspace.Gateway updatedGateway, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGateway(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Gateway> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteGateway(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllGateways(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.workspace.Gateway>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void isGatewayExist(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void createNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateNotification(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.workspace.Notification notification, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteNotification(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String notificationId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getNotification(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String notificationId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Notification> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllNotifications(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.workspace.Notification>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void generateAndRegisterSSHKeys(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String description, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerPwdCredential(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String loginUserName, java.lang.String password, java.lang.String description, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getCredentialSummary(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String tokenId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.credential.store.CredentialSummary> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllCredentialSummaries(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.credential.store.SummaryType type, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.credential.store.CredentialSummary>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deletePWDCredential(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void createProject(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.workspace.Project project, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateProject(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String projectId, org.apache.airavata.model.workspace.Project updatedProject, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getProject(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workspace.Project> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteProject(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUserProjects(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.workspace.Project>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void searchProjects(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String userName, java.util.Map<org.apache.airavata.model.experiment.ProjectSearchFields,java.lang.String> filters, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.workspace.Project>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void searchExperiments(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String userName, java.util.Map<org.apache.airavata.model.experiment.ExperimentSearchFields,java.lang.String> filters, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.experiment.ExperimentSummaryModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperimentStatistics(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, long fromTime, long toTime, java.lang.String userName, java.lang.String applicationName, java.lang.String resourceHostName, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentStatistics> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperimentsInProject(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String projectId, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUserExperiments(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, java.lang.String userName, int limit, int offset, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.experiment.ExperimentModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void createExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.experiment.ExperimentModel experiment, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String experimentId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getDetailedExperimentTree(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.experiment.ExperimentModel> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.airavata.model.experiment.ExperimentModel experiment, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateExperimentConfiguration(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateResourceScheduleing(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel resourceScheduling, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void validateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void launchExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperimentStatus(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.status.ExperimentStatus> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getExperimentOutputs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getIntermediateOutputs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getJobStatuses(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,org.apache.airavata.model.status.JobStatus>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getJobDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.job.JobModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void cloneExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String existingExperimentID, java.lang.String newExperimentName, java.lang.String newExperimentProjectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void cloneExperimentByAdmin(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String existingExperimentID, java.lang.String newExperimentName, java.lang.String newExperimentProjectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void terminateExperiment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String airavataExperimentId, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appModuleId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appModuleId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule applicationModule, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllAppModules(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAccessibleAppModules(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteApplicationModule(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appModuleId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appDeploymentId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appDeploymentId, org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription applicationDeployment, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteApplicationDeployment(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appDeploymentId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllApplicationDeployments(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAccessibleApplicationDeployments(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAppModuleDeployedResources(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appModuleId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationDeploymentsForAppModuleAndGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appModuleId, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void cloneApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String existingAppInterfaceID, java.lang.String newApplicationName, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription applicationInterface, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteApplicationInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllApplicationInterfaceNames(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllApplicationInterfaces(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationInputs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.InputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getApplicationOutputs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.application.io.OutputDataObjectType>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAvailableAppInterfaceComputeResources(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String appInterfaceId, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllComputeResourceNames(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription computeResourceDescription, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteComputeResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String storageResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllStorageResourceNames(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.Map<java.lang.String,java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String storageResourceId, org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription storageResourceDescription, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteStorageResource(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String storageResourceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addLocalSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateLocalSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission localSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getLocalJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addSSHJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addSSHForkJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getSSHJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addUNICOREJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUnicoreJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addCloudJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, int priorityOrder, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission cloudSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getCloudJobSubmission(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateSSHJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateCloudJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission sshJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateUnicoreJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addLocalDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateLocalDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementInterfaceId, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getLocalDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.LOCALDataMovement> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addSCPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateSCPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementInterfaceId, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getSCPDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.SCPDataMovement> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementInterfaceId, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUnicoreDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.UnicoreDataMovement> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addGridFTPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateGridFTPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementInterfaceId, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGridFTPDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.movement.GridFTPDataMovement> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void changeJobSubmissionPriority(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String jobSubmissionInterfaceId, int newPriorityOrder, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void changeDataMovementPriority(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataMovementInterfaceId, int newPriorityOrder, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void changeJobSubmissionPriorities(org.apache.airavata.model.security.AuthzToken authzToken, java.util.Map<java.lang.String,java.lang.Integer> jobSubmissionPriorityMap, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void changeDataMovementPriorities(org.apache.airavata.model.security.AuthzToken authzToken, java.util.Map<java.lang.String,java.lang.Integer> dataMovementPriorityMap, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteJobSubmissionInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String jobSubmissionInterfaceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteDataMovementInterface(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, java.lang.String dataMovementInterfaceId, org.apache.airavata.model.data.movement.DMType dataMoveType, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager resourceJobManager, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceJobManagerId, org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager updatedResourceJobManager, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceJobManagerId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceJobManagerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteBatchQueue(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String queueName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile gatewayResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteGatewayResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void addGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getAllWorkflows(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void addGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String storageResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getLatestQueueStatuses(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String computeResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String workflowTemplateId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String storageResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference> resultHandler) throws org.apache.thrift.TException;
  
 -    public void deleteWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String workflowTemplateId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getAllGatewayComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException;
  
 -    public void registerWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.WorkflowModel workflow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getAllGatewayStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference>> resultHandler) throws org.apache.thrift.TException;
  
 -    public void updateWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String workflowTemplateId, org.apache.airavata.model.WorkflowModel workflow, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getAllGatewayResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getWorkflowTemplateId(org.apache.airavata.model.security.AuthzToken authzToken, String workflowName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void updateGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String computeResourceId, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void isWorkflowExistWithName(org.apache.airavata.model.security.AuthzToken authzToken, String workflowName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void updateGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String storageId, org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference storagePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void deleteGatewayComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String computeResourceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String dataProductUri, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void deleteGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayID, java.lang.String storageId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getSSHAccountProvisioners(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.accountprovisioning.SSHAccountProvisioner>> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getParentDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void doesUserHaveSSHAccount(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String userId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getChildDataProducts(org.apache.airavata.model.security.AuthzToken authzToken, String productUri, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
++    public void isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+ 
 -    public void shareResourceWithUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, Map<String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String userId, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException;
  
 -    public void revokeSharingOfResourceFromUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, Map<String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getAllAccessibleUsers(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.group.ResourceType resourceType, org.apache.airavata.model.group.ResourcePermissionType permissionType, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void isUserResourceProfileExists(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void createGroup(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.group.GroupModel groupModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException;
  
 -    public void updateGroup(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.group.GroupModel groupModel, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void deleteGroup(org.apache.airavata.model.security.AuthzToken authzToken, String groupId, String ownerId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void deleteUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getGroup(org.apache.airavata.model.security.AuthzToken authzToken, String groupId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void addUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
  
 -    public void getAllGroupsUserBelongs(org.apache.airavata.model.security.AuthzToken authzToken, String userName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 +    public void addUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllUserComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllUserStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String userId, java.lang.String gatewayID, java.lang.String userStorageId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllWorkflows(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getLatestQueueStatuses(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String workflowId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void deleteWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String workflowId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.airavata.model.workflow.AiravataWorkflow workflow, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void updateWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String workflowId, org.apache.airavata.model.workflow.AiravataWorkflow workflow, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getWorkflowId(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String workflowName, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void isWorkflowExistWithName(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String workflowName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataProductModel dataProductModel, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String dataProductUri, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void registerReplicaLocation(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.data.replica.DataReplicaLocationModel replicaLocationModel, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getParentDataProduct(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getChildDataProducts(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String productUri, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void shareResourceWithUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void shareResourceWithGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> groupPermissionList, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void revokeSharingOfResourceFromUsers(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> userPermissionList, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void revokeSharingOfResourceFromGroups(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourceId, java.util.Map<java.lang.String,org.apache.airavata.model.group.ResourcePermissionType> groupPermissionList, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getAllAccessibleUsers(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 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 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;
 +
 +    public void updateGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile groupResourceProfile, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void removeGroupResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupResourceList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String gatewayId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void removeGroupComputePrefs(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void removeGroupComputeResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void removeGroupBatchQueueResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupComputeResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getBatchQueueResourcePolicy(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String resourcePolicyId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupComputeResourcePrefList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupBatchQueueResourcePolicyList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGroupComputeResourcePolicyList(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String groupResourceProfileId, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy>> resultHandler) throws org.apache.thrift.TException;
 +
 +    public void getGatewayGroups(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups> resultHandler) throws org.apache.thrift.TException;
  
    }
  
@@@ -8370,7 -8389,44 +8381,44 @@@
        throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "doesUserHaveSSHAccount failed: unknown result");
      }
  
 -    public boolean isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken) 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 isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken) 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_isSSHSetupCompleteForUserComputeResourcePreference(authzToken, computeResourceId, airavataCredStoreToken);
+       return recv_isSSHSetupCompleteForUserComputeResourcePreference();
+     }
+ 
 -    public void send_isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken) throws org.apache.thrift.TException
++    public void send_isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken) throws org.apache.thrift.TException
+     {
+       isSSHSetupCompleteForUserComputeResourcePreference_args args = new isSSHSetupCompleteForUserComputeResourcePreference_args();
+       args.setAuthzToken(authzToken);
+       args.setComputeResourceId(computeResourceId);
+       args.setAiravataCredStoreToken(airavataCredStoreToken);
+       sendBase("isSSHSetupCompleteForUserComputeResourcePreference", args);
+     }
+ 
+     public boolean recv_isSSHSetupCompleteForUserComputeResourcePreference() 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
+     {
+       isSSHSetupCompleteForUserComputeResourcePreference_result result = new isSSHSetupCompleteForUserComputeResourcePreference_result();
+       receiveBase(result, "isSSHSetupCompleteForUserComputeResourcePreference");
+       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, "isSSHSetupCompleteForUserComputeResourcePreference failed: unknown result");
+     }
+ 
 -    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String userId, String airavataCredStoreToken) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.Authorizati [...]
 +    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String userId, java.lang.String airavataCredStoreToken) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.ai [...]
      {
        send_setupUserComputeResourcePreferencesForSSH(authzToken, computeResourceId, userId, airavataCredStoreToken);
        return recv_setupUserComputeResourcePreferencesForSSH();
@@@ -15301,7 -14845,45 +15349,45 @@@
        }
      }
  
 -    public void isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
++    public void isSSHSetupCompleteForUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+       checkReady();
+       isSSHSetupCompleteForUserComputeResourcePreference_call method_call = new isSSHSetupCompleteForUserComputeResourcePreference_call(authzToken, computeResourceId, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
+       this.___currentMethod = method_call;
+       ___manager.call(method_call);
+     }
+ 
 -    public static class isSSHSetupCompleteForUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
++    public static class isSSHSetupCompleteForUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
+       private org.apache.airavata.model.security.AuthzToken authzToken;
 -      private String computeResourceId;
 -      private String airavataCredStoreToken;
 -      public isSSHSetupCompleteForUserComputeResourcePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
++      private java.lang.String computeResourceId;
++      private java.lang.String airavataCredStoreToken;
++      public isSSHSetupCompleteForUserComputeResourcePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+         super(client, protocolFactory, transport, resultHandler, false);
+         this.authzToken = authzToken;
+         this.computeResourceId = computeResourceId;
+         this.airavataCredStoreToken = airavataCredStoreToken;
+       }
+ 
+       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isSSHSetupCompleteForUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+         isSSHSetupCompleteForUserComputeResourcePreference_args args = new isSSHSetupCompleteForUserComputeResourcePreference_args();
+         args.setAuthzToken(authzToken);
+         args.setComputeResourceId(computeResourceId);
+         args.setAiravataCredStoreToken(airavataCredStoreToken);
+         args.write(prot);
+         prot.writeMessageEnd();
+       }
+ 
 -      public boolean 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 {
++      public java.lang.Boolean 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 IllegalStateException("Method call not finished!");
++          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_isSSHSetupCompleteForUserComputeResourcePreference();
+       }
+     }
+ 
 -    public void setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String userId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
 +    public void setupUserComputeResourcePreferencesForSSH(org.apache.airavata.model.security.AuthzToken authzToken, java.lang.String computeResourceId, java.lang.String userId, java.lang.String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
        checkReady();
        setupUserComputeResourcePreferencesForSSH_call method_call = new setupUserComputeResourcePreferencesForSSH_call(authzToken, computeResourceId, userId, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
        this.___currentMethod = method_call;
@@@ -17380,9 -16431,9 +17466,10 @@@
        processMap.put("deleteGatewayStoragePreference", new deleteGatewayStoragePreference());
        processMap.put("getSSHAccountProvisioners", new getSSHAccountProvisioners());
        processMap.put("doesUserHaveSSHAccount", new doesUserHaveSSHAccount());
+       processMap.put("isSSHSetupCompleteForUserComputeResourcePreference", new isSSHSetupCompleteForUserComputeResourcePreference());
        processMap.put("setupUserComputeResourcePreferencesForSSH", new setupUserComputeResourcePreferencesForSSH());
        processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
 +      processMap.put("isUserResourceProfileExists", new isUserResourceProfileExists());
        processMap.put("getUserResourceProfile", new getUserResourceProfile());
        processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
        processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
@@@ -23281,9 -21881,9 +23399,10 @@@
        processMap.put("deleteGatewayStoragePreference", new deleteGatewayStoragePreference());
        processMap.put("getSSHAccountProvisioners", new getSSHAccountProvisioners());
        processMap.put("doesUserHaveSSHAccount", new doesUserHaveSSHAccount());
+       processMap.put("isSSHSetupCompleteForUserComputeResourcePreference", new isSSHSetupCompleteForUserComputeResourcePreference());
        processMap.put("setupUserComputeResourcePreferencesForSSH", new setupUserComputeResourcePreferencesForSSH());
        processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
 +      processMap.put("isUserResourceProfileExists", new isUserResourceProfileExists());
        processMap.put("getUserResourceProfile", new getUserResourceProfile());
        processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
        processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
@@@ -33816,140 -31708,58 +33935,64 @@@
        }
      }
  
-     public static class setupUserComputeResourcePreferencesForSSH<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, setupUserComputeResourcePreferencesForSSH_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
-       public setupUserComputeResourcePreferencesForSSH() {
-         super("setupUserComputeResourcePreferencesForSSH");
-       }
- 
-       public setupUserComputeResourcePreferencesForSSH_args getEmptyArgsInstance() {
-         return new setupUserComputeResourcePreferencesForSSH_args();
-       }
- 
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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.userresourceprofile.UserComputeResourcePreference>() { 
-           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
-             setupUserComputeResourcePreferencesForSSH_result result = new setupUserComputeResourcePreferencesForSSH_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;
-             setupUserComputeResourcePreferencesForSSH_result result = new setupUserComputeResourcePreferencesForSSH_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, setupUserComputeResourcePreferencesForSSH_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-         iface.setupUserComputeResourcePreferencesForSSH(args.authzToken, args.computeResourceId, args.userId, args.airavataCredStoreToken,resultHandler);
-       }
-     }
- 
-     public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
-       public registerUserResourceProfile() {
-         super("registerUserResourceProfile");
 -    public static class isSSHSetupCompleteForUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isSSHSetupCompleteForUserComputeResourcePreference_args, Boolean> {
++    public static class isSSHSetupCompleteForUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isSSHSetupCompleteForUserComputeResourcePreference_args, java.lang.Boolean> {
+       public isSSHSetupCompleteForUserComputeResourcePreference() {
+         super("isSSHSetupCompleteForUserComputeResourcePreference");
        }
  
-       public registerUserResourceProfile_args getEmptyArgsInstance() {
-         return new registerUserResourceProfile_args();
+       public isSSHSetupCompleteForUserComputeResourcePreference_args getEmptyArgsInstance() {
+         return new isSSHSetupCompleteForUserComputeResourcePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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) {
-             registerUserResourceProfile_result result = new registerUserResourceProfile_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             isSSHSetupCompleteForUserComputeResourcePreference_result result = new isSSHSetupCompleteForUserComputeResourcePreference_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             registerUserResourceProfile_result result = new registerUserResourceProfile_result();
+             isSSHSetupCompleteForUserComputeResourcePreference_result result = new isSSHSetupCompleteForUserComputeResourcePreference_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -33965,69 -31776,62 +34008,68 @@@
          return false;
        }
  
-       public void start(I iface, registerUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-         iface.registerUserResourceProfile(args.authzToken, args.userResourceProfile,resultHandler);
 -      public void start(I iface, isSSHSetupCompleteForUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, isSSHSetupCompleteForUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.isSSHSetupCompleteForUserComputeResourcePreference(args.authzToken, args.computeResourceId, args.airavataCredStoreToken,resultHandler);
        }
      }
  
-     public static class isUserResourceProfileExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserResourceProfileExists_args, java.lang.Boolean> {
-       public isUserResourceProfileExists() {
-         super("isUserResourceProfileExists");
+     public static class setupUserComputeResourcePreferencesForSSH<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, setupUserComputeResourcePreferencesForSSH_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
+       public setupUserComputeResourcePreferencesForSSH() {
+         super("setupUserComputeResourcePreferencesForSSH");
        }
  
-       public isUserResourceProfileExists_args getEmptyArgsInstance() {
-         return new isUserResourceProfileExists_args();
+       public setupUserComputeResourcePreferencesForSSH_args getEmptyArgsInstance() {
+         return new setupUserComputeResourcePreferencesForSSH_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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) {
-             isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
+           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
+             setupUserComputeResourcePreferencesForSSH_result result = new setupUserComputeResourcePreferencesForSSH_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             isUserResourceProfileExists_result result = new isUserResourceProfileExists_result();
+             setupUserComputeResourcePreferencesForSSH_result result = new setupUserComputeResourcePreferencesForSSH_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -34043,146 -31848,62 +34085,146 @@@
          return false;
        }
  
-       public void start(I iface, isUserResourceProfileExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.isUserResourceProfileExists(args.authzToken, args.userId, args.gatewayID,resultHandler);
 -      public void start(I iface, setupUserComputeResourcePreferencesForSSH_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws TException {
++      public void start(I iface, setupUserComputeResourcePreferencesForSSH_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+         iface.setupUserComputeResourcePreferencesForSSH(args.authzToken, args.computeResourceId, args.userId, args.airavataCredStoreToken,resultHandler);
        }
      }
  
-     public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
-       public getUserResourceProfile() {
-         super("getUserResourceProfile");
 -    public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, String> {
++    public static class registerUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerUserResourceProfile_args, java.lang.String> {
+       public registerUserResourceProfile() {
+         super("registerUserResourceProfile");
        }
  
-       public getUserResourceProfile_args getEmptyArgsInstance() {
-         return new getUserResourceProfile_args();
+       public registerUserResourceProfile_args getEmptyArgsInstance() {
+         return new registerUserResourceProfile_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<String> getResultHandler(final 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.userresourceprofile.UserResourceProfile>() { 
-           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
-             getUserResourceProfile_result result = new getUserResourceProfile_result();
 -        return new AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
++          public void onComplete(java.lang.String o) {
+             registerUserResourceProfile_result result = new registerUserResourceProfile_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getUserResourceProfile_result result = new getUserResourceProfile_result();
+             registerUserResourceProfile_result result = new registerUserResourceProfile_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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
-       public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
-         iface.getUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
++      public void start(I iface, registerUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
++        iface.registerUserResourceProfile(args.authzToken, args.userResourceProfile,resultHandler);
 +      }
 +    }
 +
-     public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
-       public updateUserResourceProfile() {
-         super("updateUserResourceProfile");
++    public static class isUserResourceProfileExists<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isUserResourceProfileExists_args, java.lang.Boolean> {
++      public isUserResourceProfileExists() {
++        super("isUserResourceProfileExists");
 +      }
 +
-       public updateUserResourceProfile_args getEmptyArgsInstance() {
-         return new updateUserResourceProfile_args();
++      public isUserResourceProfileExists_args getEmptyArgsInstance() {
++        return new isUserResourceProfileExists_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) {
-             updateUserResourceProfile_result result = new updateUserResourceProfile_result();
++            isUserResourceProfileExists_result result = new isUserResourceProfileExists_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);
              }
 -             else 
 -            {
 +          }
 +          public void onError(java.lang.Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TSerializable msg;
-             updateUserResourceProfile_result result = new updateUserResourceProfile_result();
++            isUserResourceProfileExists_result result = new isUserResourceProfileExists_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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34198,69 -31920,62 +34240,68 @@@
          return false;
        }
  
-       public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.updateUserResourceProfile(args.authzToken, args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
 -      public void start(I iface, registerUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
 -        iface.registerUserResourceProfile(args.authzToken, args.userResourceProfile,resultHandler);
++      public void start(I iface, isUserResourceProfileExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
++        iface.isUserResourceProfileExists(args.authzToken, args.userId, args.gatewayID,resultHandler);
        }
      }
  
-     public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
-       public deleteUserResourceProfile() {
-         super("deleteUserResourceProfile");
+     public static class getUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserResourceProfile_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> {
+       public getUserResourceProfile() {
+         super("getUserResourceProfile");
        }
  
-       public deleteUserResourceProfile_args getEmptyArgsInstance() {
-         return new deleteUserResourceProfile_args();
+       public getUserResourceProfile_args getEmptyArgsInstance() {
+         return new getUserResourceProfile_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> 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) {
-             deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>() { 
+           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile o) {
+             getUserResourceProfile_result result = new getUserResourceProfile_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+             getUserResourceProfile_result result = new getUserResourceProfile_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34276,69 -31992,63 +34317,69 @@@
          return false;
        }
  
-       public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.deleteUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
 -      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws TException {
++      public void start(I iface, getUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> resultHandler) throws org.apache.thrift.TException {
+         iface.getUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
        }
      }
  
-     public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
-       public addUserComputeResourcePreference() {
-         super("addUserComputeResourcePreference");
 -    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, Boolean> {
++    public static class updateUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserResourceProfile_args, java.lang.Boolean> {
+       public updateUserResourceProfile() {
+         super("updateUserResourceProfile");
        }
  
-       public addUserComputeResourcePreference_args getEmptyArgsInstance() {
-         return new addUserComputeResourcePreference_args();
+       public updateUserResourceProfile_args getEmptyArgsInstance() {
+         return new updateUserResourceProfile_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
 +          public void onComplete(java.lang.Boolean o) {
-             addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+             updateUserResourceProfile_result result = new updateUserResourceProfile_result();
              result.success = o;
              result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+             updateUserResourceProfile_result result = new updateUserResourceProfile_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -34354,69 -32065,63 +34395,69 @@@
          return false;
        }
  
-       public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.addUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
 -      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, updateUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.updateUserResourceProfile(args.authzToken, args.userId, args.gatewayID, args.userResourceProfile,resultHandler);
        }
      }
  
-     public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
-       public addUserStoragePreference() {
-         super("addUserStoragePreference");
 -    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, Boolean> {
++    public static class deleteUserResourceProfile<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserResourceProfile_args, java.lang.Boolean> {
+       public deleteUserResourceProfile() {
+         super("deleteUserResourceProfile");
        }
  
-       public addUserStoragePreference_args getEmptyArgsInstance() {
-         return new addUserStoragePreference_args();
+       public deleteUserResourceProfile_args getEmptyArgsInstance() {
+         return new deleteUserResourceProfile_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
 +          public void onComplete(java.lang.Boolean o) {
-             addUserStoragePreference_result result = new addUserStoragePreference_result();
+             deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
              result.success = o;
              result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             addUserStoragePreference_result result = new addUserStoragePreference_result();
+             deleteUserResourceProfile_result result = new deleteUserResourceProfile_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34432,68 -32138,63 +34473,69 @@@
          return false;
        }
  
-       public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.addUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
 -      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, deleteUserResourceProfile_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.deleteUserResourceProfile(args.authzToken, args.userId, args.gatewayID,resultHandler);
        }
      }
  
-     public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
-       public getUserComputeResourcePreference() {
-         super("getUserComputeResourcePreference");
 -    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, Boolean> {
++    public static class addUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserComputeResourcePreference_args, java.lang.Boolean> {
+       public addUserComputeResourcePreference() {
+         super("addUserComputeResourcePreference");
        }
  
-       public getUserComputeResourcePreference_args getEmptyArgsInstance() {
-         return new getUserComputeResourcePreference_args();
+       public addUserComputeResourcePreference_args getEmptyArgsInstance() {
+         return new addUserComputeResourcePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.userresourceprofile.UserComputeResourcePreference>() { 
-           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
-             getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+             addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34509,68 -32211,63 +34551,69 @@@
          return false;
        }
  
-       public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
-         iface.getUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
 -      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, addUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.addUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
        }
      }
  
-     public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
-       public getUserStoragePreference() {
-         super("getUserStoragePreference");
 -    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, Boolean> {
++    public static class addUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, addUserStoragePreference_args, java.lang.Boolean> {
+       public addUserStoragePreference() {
+         super("addUserStoragePreference");
        }
  
-       public getUserStoragePreference_args getEmptyArgsInstance() {
-         return new getUserStoragePreference_args();
+       public addUserStoragePreference_args getEmptyArgsInstance() {
+         return new addUserStoragePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.userresourceprofile.UserStoragePreference>() { 
-           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
-             getUserStoragePreference_result result = new getUserStoragePreference_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             addUserStoragePreference_result result = new addUserStoragePreference_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getUserStoragePreference_result result = new getUserStoragePreference_result();
+             addUserStoragePreference_result result = new addUserStoragePreference_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -34586,68 -32284,62 +34629,68 @@@
          return false;
        }
  
-       public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
-         iface.getUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
 -      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, addUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.addUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference,resultHandler);
        }
      }
  
-     public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
-       public getAllUserComputeResourcePreferences() {
-         super("getAllUserComputeResourcePreferences");
+     public static class getUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserComputeResourcePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> {
+       public getUserComputeResourcePreference() {
+         super("getUserComputeResourcePreference");
        }
  
-       public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
-         return new getAllUserComputeResourcePreferences_args();
+       public getUserComputeResourcePreference_args getEmptyArgsInstance() {
+         return new getUserComputeResourcePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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.userresourceprofile.UserComputeResourcePreference>>() { 
-           public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
-             getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>() { 
+           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference o) {
+             getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+             getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34663,68 -32356,62 +34706,68 @@@
          return false;
        }
  
-       public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
 -      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws TException {
++      public void start(I iface, getUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> resultHandler) throws org.apache.thrift.TException {
+         iface.getUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
        }
      }
  
-     public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
-       public getAllUserStoragePreferences() {
-         super("getAllUserStoragePreferences");
+     public static class getUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getUserStoragePreference_args, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> {
+       public getUserStoragePreference() {
+         super("getUserStoragePreference");
        }
  
-       public getAllUserStoragePreferences_args getEmptyArgsInstance() {
-         return new getAllUserStoragePreferences_args();
+       public getUserStoragePreference_args getEmptyArgsInstance() {
+         return new getUserStoragePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> 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.userresourceprofile.UserStoragePreference>>() { 
-           public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
-             getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>() { 
+           public void onComplete(org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference o) {
+             getUserStoragePreference_result result = new getUserStoragePreference_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+             getUserStoragePreference_result result = new getUserStoragePreference_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -34740,68 -32428,62 +34783,68 @@@
          return false;
        }
  
-       public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
 -      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws TException {
++      public void start(I iface, getUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> resultHandler) throws org.apache.thrift.TException {
+         iface.getUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageResourceId,resultHandler);
        }
      }
  
-     public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
-       public getAllUserResourceProfiles() {
-         super("getAllUserResourceProfiles");
 -    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
++    public static class getAllUserComputeResourcePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserComputeResourcePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> {
+       public getAllUserComputeResourcePreferences() {
+         super("getAllUserComputeResourcePreferences");
        }
  
-       public getAllUserResourceProfiles_args getEmptyArgsInstance() {
-         return new getAllUserResourceProfiles_args();
+       public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+         return new getAllUserComputeResourcePreferences_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> 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.userresourceprofile.UserResourceProfile>>() { 
-           public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
-             getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
 -        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
 -          public void onComplete(List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>>() { 
++          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> o) {
+             getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+             getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34817,69 -32500,62 +34860,68 @@@
          return false;
        }
  
-       public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllUserResourceProfiles(args.authzToken,resultHandler);
 -      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws TException {
++      public void start(I iface, getAllUserComputeResourcePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> resultHandler) throws org.apache.thrift.TException {
+         iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
        }
      }
  
-     public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
-       public updateUserComputeResourcePreference() {
-         super("updateUserComputeResourcePreference");
 -    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
++    public static class getAllUserStoragePreferences<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserStoragePreferences_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> {
+       public getAllUserStoragePreferences() {
+         super("getAllUserStoragePreferences");
        }
  
-       public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
-         return new updateUserComputeResourcePreference_args();
+       public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+         return new getAllUserStoragePreferences_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> 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) {
-             updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
 -        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>>() { 
 -          public void onComplete(List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>>() { 
++          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> o) {
+             getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+             getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -34895,69 -32572,62 +34937,68 @@@
          return false;
        }
  
-       public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.updateUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
 -      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws TException {
++      public void start(I iface, getAllUserStoragePreferences_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> resultHandler) throws org.apache.thrift.TException {
+         iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
        }
      }
  
-     public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
-       public updateUserStoragePreference() {
-         super("updateUserStoragePreference");
 -    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
++    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> {
+       public getAllUserResourceProfiles() {
+         super("getAllUserResourceProfiles");
        }
  
-       public updateUserStoragePreference_args getEmptyArgsInstance() {
-         return new updateUserStoragePreference_args();
+       public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+         return new getAllUserResourceProfiles_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> 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) {
-             updateUserStoragePreference_result result = new updateUserStoragePreference_result();
 -        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
 -          public void onComplete(List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
++          public void onComplete(java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> o) {
+             getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+             getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -34973,69 -32644,63 +35014,69 @@@
          return false;
        }
  
-       public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.updateUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
 -      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws TException {
++      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws org.apache.thrift.TException {
+         iface.getAllUserResourceProfiles(args.authzToken,resultHandler);
        }
      }
  
-     public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
-       public deleteUserComputeResourcePreference() {
-         super("deleteUserComputeResourcePreference");
 -    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, Boolean> {
++    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, java.lang.Boolean> {
+       public updateUserComputeResourcePreference() {
+         super("updateUserComputeResourcePreference");
        }
  
-       public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
-         return new deleteUserComputeResourcePreference_args();
+       public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
+         return new updateUserComputeResourcePreference_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
 +          public void onComplete(java.lang.Boolean o) {
-             deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+             updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
              result.success = o;
              result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+             updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35051,69 -32717,63 +35092,69 @@@
          return false;
        }
  
-       public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
 -      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.updateUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
        }
      }
  
-     public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
-       public deleteUserStoragePreference() {
-         super("deleteUserStoragePreference");
 -    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, Boolean> {
++    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, java.lang.Boolean> {
+       public updateUserStoragePreference() {
+         super("updateUserStoragePreference");
        }
  
-       public deleteUserStoragePreference_args getEmptyArgsInstance() {
-         return new deleteUserStoragePreference_args();
+       public updateUserStoragePreference_args getEmptyArgsInstance() {
+         return new updateUserStoragePreference_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
 +          public void onComplete(java.lang.Boolean o) {
-             deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+             updateUserStoragePreference_result result = new updateUserStoragePreference_result();
              result.success = o;
              result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+             updateUserStoragePreference_result result = new updateUserStoragePreference_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35129,68 -32790,63 +35170,69 @@@
          return false;
        }
  
-       public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.deleteUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId,resultHandler);
 -      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.updateUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
        }
      }
  
-     public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
-       public getAllWorkflows() {
-         super("getAllWorkflows");
 -    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, Boolean> {
++    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, java.lang.Boolean> {
+       public deleteUserComputeResourcePreference() {
+         super("deleteUserComputeResourcePreference");
        }
  
-       public getAllWorkflows_args getEmptyArgsInstance() {
-         return new getAllWorkflows_args();
+       public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+         return new deleteUserComputeResourcePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.util.List<java.lang.String>>() { 
-           public void onComplete(java.util.List<java.lang.String> o) {
-             getAllWorkflows_result result = new getAllWorkflows_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getAllWorkflows_result result = new getAllWorkflows_result();
+             deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35206,68 -32863,63 +35248,69 @@@
          return false;
        }
  
-       public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllWorkflows(args.authzToken, args.gatewayId,resultHandler);
 -      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
        }
      }
  
-     public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
-       public getLatestQueueStatuses() {
-         super("getLatestQueueStatuses");
 -    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, Boolean> {
++    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, java.lang.Boolean> {
+       public deleteUserStoragePreference() {
+         super("deleteUserStoragePreference");
        }
  
-       public getLatestQueueStatuses_args getEmptyArgsInstance() {
-         return new getLatestQueueStatuses_args();
+       public deleteUserStoragePreference_args getEmptyArgsInstance() {
+         return new deleteUserStoragePreference_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.util.List<org.apache.airavata.model.status.QueueStatusModel>>() { 
-           public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
-             getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+             deleteUserStoragePreference_result result = new deleteUserStoragePreference_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35283,68 -32936,62 +35326,68 @@@
          return false;
        }
  
-       public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
-         iface.getLatestQueueStatuses(args.authzToken,resultHandler);
 -      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.deleteUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId,resultHandler);
        }
      }
  
-     public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.workflow.AiravataWorkflow> {
-       public getWorkflow() {
-         super("getWorkflow");
 -    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, List<String>> {
++    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, java.util.List<java.lang.String>> {
+       public getAllWorkflows() {
+         super("getAllWorkflows");
        }
  
-       public getWorkflow_args getEmptyArgsInstance() {
-         return new getWorkflow_args();
+       public getAllWorkflows_args getEmptyArgsInstance() {
+         return new getAllWorkflows_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<String>> getResultHandler(final 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<org.apache.airavata.model.workflow.AiravataWorkflow>() { 
-           public void onComplete(org.apache.airavata.model.workflow.AiravataWorkflow o) {
-             getWorkflow_result result = new getWorkflow_result();
 -        return new AsyncMethodCallback<List<String>>() { 
 -          public void onComplete(List<String> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
++          public void onComplete(java.util.List<java.lang.String> o) {
+             getAllWorkflows_result result = new getAllWorkflows_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getWorkflow_result result = new getWorkflow_result();
+             getAllWorkflows_result result = new getAllWorkflows_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35360,67 -33008,62 +35403,68 @@@
          return false;
        }
  
-       public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow> resultHandler) throws org.apache.thrift.TException {
-         iface.getWorkflow(args.authzToken, args.workflowId,resultHandler);
 -      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws TException {
++      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
+         iface.getAllWorkflows(args.authzToken, args.gatewayId,resultHandler);
        }
      }
  
-     public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
-       public deleteWorkflow() {
-         super("deleteWorkflow");
 -    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, List<org.apache.airavata.model.status.QueueStatusModel>> {
++    public static class getLatestQueueStatuses<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getLatestQueueStatuses_args, java.util.List<org.apache.airavata.model.status.QueueStatusModel>> {
+       public getLatestQueueStatuses() {
+         super("getLatestQueueStatuses");
        }
  
-       public deleteWorkflow_args getEmptyArgsInstance() {
-         return new deleteWorkflow_args();
+       public getLatestQueueStatuses_args getEmptyArgsInstance() {
+         return new getLatestQueueStatuses_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<Void> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<org.apache.airavata.model.status.QueueStatusModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> 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) {
-             deleteWorkflow_result result = new deleteWorkflow_result();
 -        return new AsyncMethodCallback<List<org.apache.airavata.model.status.QueueStatusModel>>() { 
 -          public void onComplete(List<org.apache.airavata.model.status.QueueStatusModel> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>>() { 
++          public void onComplete(java.util.List<org.apache.airavata.model.status.QueueStatusModel> o) {
+             getLatestQueueStatuses_result result = new getLatestQueueStatuses_result();
+             result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             deleteWorkflow_result result = new deleteWorkflow_result();
+             getLatestQueueStatuses_result result = new getLatestQueueStatuses_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35436,68 -33080,62 +35480,68 @@@
          return false;
        }
  
-       public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-         iface.deleteWorkflow(args.authzToken, args.workflowId,resultHandler);
 -      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws TException {
++      public void start(I iface, getLatestQueueStatuses_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.status.QueueStatusModel>> resultHandler) throws org.apache.thrift.TException {
+         iface.getLatestQueueStatuses(args.authzToken,resultHandler);
        }
      }
  
-     public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
-       public registerWorkflow() {
-         super("registerWorkflow");
 -    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
++    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.workflow.AiravataWorkflow> {
+       public getWorkflow() {
+         super("getWorkflow");
        }
  
-       public registerWorkflow_args getEmptyArgsInstance() {
-         return new registerWorkflow_args();
+       public getWorkflow_args getEmptyArgsInstance() {
+         return new getWorkflow_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.String> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow> 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) {
-             registerWorkflow_result result = new registerWorkflow_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.WorkflowModel>() { 
 -          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow>() { 
++          public void onComplete(org.apache.airavata.model.workflow.AiravataWorkflow o) {
+             getWorkflow_result result = new getWorkflow_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             registerWorkflow_result result = new registerWorkflow_result();
+             getWorkflow_result result = new getWorkflow_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35513,67 -33152,61 +35557,67 @@@
          return false;
        }
  
-       public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-         iface.registerWorkflow(args.authzToken, args.gatewayId, args.workflow,resultHandler);
 -      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> resultHandler) throws TException {
 -        iface.getWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
++      public void start(I iface, getWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.workflow.AiravataWorkflow> resultHandler) throws org.apache.thrift.TException {
++        iface.getWorkflow(args.authzToken, args.workflowId,resultHandler);
        }
      }
  
-     public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
-       public updateWorkflow() {
-         super("updateWorkflow");
+     public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
+       public deleteWorkflow() {
+         super("deleteWorkflow");
        }
  
-       public updateWorkflow_args getEmptyArgsInstance() {
-         return new updateWorkflow_args();
+       public deleteWorkflow_args getEmptyArgsInstance() {
+         return new deleteWorkflow_args();
        }
  
 -      public AsyncMethodCallback<Void> getResultHandler(final 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 AsyncMethodCallback<Void>() { 
 +        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
            public void onComplete(Void o) {
-             updateWorkflow_result result = new updateWorkflow_result();
+             deleteWorkflow_result result = new deleteWorkflow_result();
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             updateWorkflow_result result = new updateWorkflow_result();
+             deleteWorkflow_result result = new deleteWorkflow_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35589,68 -33223,62 +35633,68 @@@
          return false;
        }
  
-       public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
-         iface.updateWorkflow(args.authzToken, args.workflowId, args.workflow,resultHandler);
 -      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
 -        iface.deleteWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
++      public void start(I iface, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
++        iface.deleteWorkflow(args.authzToken, args.workflowId,resultHandler);
        }
      }
  
-     public static class getWorkflowId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowId_args, java.lang.String> {
-       public getWorkflowId() {
-         super("getWorkflowId");
 -    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, String> {
++    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, java.lang.String> {
+       public registerWorkflow() {
+         super("registerWorkflow");
        }
  
-       public getWorkflowId_args getEmptyArgsInstance() {
-         return new getWorkflowId_args();
+       public registerWorkflow_args getEmptyArgsInstance() {
+         return new registerWorkflow_args();
        }
  
 -      public AsyncMethodCallback<String> getResultHandler(final 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 AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
 +          public void onComplete(java.lang.String o) {
-             getWorkflowId_result result = new getWorkflowId_result();
+             registerWorkflow_result result = new registerWorkflow_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getWorkflowId_result result = new getWorkflowId_result();
+             registerWorkflow_result result = new registerWorkflow_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35666,69 -33295,61 +35710,67 @@@
          return false;
        }
  
-       public void start(I iface, getWorkflowId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-         iface.getWorkflowId(args.authzToken, args.workflowName,resultHandler);
 -      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
++      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+         iface.registerWorkflow(args.authzToken, args.gatewayId, args.workflow,resultHandler);
        }
      }
  
-     public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
-       public isWorkflowExistWithName() {
-         super("isWorkflowExistWithName");
+     public static class updateWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateWorkflow_args, Void> {
+       public updateWorkflow() {
+         super("updateWorkflow");
        }
  
-       public isWorkflowExistWithName_args getEmptyArgsInstance() {
-         return new isWorkflowExistWithName_args();
+       public updateWorkflow_args getEmptyArgsInstance() {
+         return new updateWorkflow_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Void> getResultHandler(final 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) {
-             isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
-             result.success = o;
-             result.setSuccessIsSet(true);
 -        return new AsyncMethodCallback<Void>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<Void>() { 
+           public void onComplete(Void o) {
+             updateWorkflow_result result = new updateWorkflow_result();
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
+             updateWorkflow_result result = new updateWorkflow_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35744,68 -33366,62 +35786,68 @@@
          return false;
        }
  
-       public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.isWorkflowExistWithName(args.authzToken, args.workflowName,resultHandler);
 -      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
 -        iface.updateWorkflow(args.authzToken, args.workflowTemplateId, args.workflow,resultHandler);
++      public void start(I iface, updateWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
++        iface.updateWorkflow(args.authzToken, args.workflowId, args.workflow,resultHandler);
        }
      }
  
-     public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
-       public registerDataProduct() {
-         super("registerDataProduct");
 -    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, String> {
 -      public getWorkflowTemplateId() {
 -        super("getWorkflowTemplateId");
++    public static class getWorkflowId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowId_args, java.lang.String> {
++      public getWorkflowId() {
++        super("getWorkflowId");
        }
  
-       public registerDataProduct_args getEmptyArgsInstance() {
-         return new registerDataProduct_args();
 -      public getWorkflowTemplateId_args getEmptyArgsInstance() {
 -        return new getWorkflowTemplateId_args();
++      public getWorkflowId_args getEmptyArgsInstance() {
++        return new getWorkflowId_args();
        }
  
 -      public AsyncMethodCallback<String> getResultHandler(final 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 AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
 -            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
 +          public void onComplete(java.lang.String o) {
-             registerDataProduct_result result = new registerDataProduct_result();
++            getWorkflowId_result result = new getWorkflowId_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
 +            org.apache.thrift.TSerializable msg;
-             registerDataProduct_result result = new registerDataProduct_result();
++            getWorkflowId_result result = new getWorkflowId_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35821,68 -33438,63 +35863,69 @@@
          return false;
        }
  
-       public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-         iface.registerDataProduct(args.authzToken, args.dataProductModel,resultHandler);
 -      public void start(I iface, getWorkflowTemplateId_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
 -        iface.getWorkflowTemplateId(args.authzToken, args.workflowName,resultHandler);
++      public void start(I iface, getWorkflowId_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
++        iface.getWorkflowId(args.authzToken, args.workflowName,resultHandler);
        }
      }
  
-     public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-       public getDataProduct() {
-         super("getDataProduct");
 -    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, Boolean> {
++    public static class isWorkflowExistWithName<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isWorkflowExistWithName_args, java.lang.Boolean> {
+       public isWorkflowExistWithName() {
+         super("isWorkflowExistWithName");
        }
  
-       public getDataProduct_args getEmptyArgsInstance() {
-         return new getDataProduct_args();
+       public isWorkflowExistWithName_args getEmptyArgsInstance() {
+         return new isWorkflowExistWithName_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.data.replica.DataProductModel>() { 
-           public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
-             getDataProduct_result result = new getDataProduct_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getDataProduct_result result = new getDataProduct_result();
+             isWorkflowExistWithName_result result = new isWorkflowExistWithName_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -35898,68 -33511,62 +35941,68 @@@
          return false;
        }
  
-       public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-         iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
 -      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+         iface.isWorkflowExistWithName(args.authzToken, args.workflowName,resultHandler);
        }
      }
  
-     public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
-       public registerReplicaLocation() {
-         super("registerReplicaLocation");
 -    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, String> {
++    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, java.lang.String> {
+       public registerDataProduct() {
+         super("registerDataProduct");
        }
  
-       public registerReplicaLocation_args getEmptyArgsInstance() {
-         return new registerReplicaLocation_args();
+       public registerDataProduct_args getEmptyArgsInstance() {
+         return new registerDataProduct_args();
        }
  
 -      public AsyncMethodCallback<String> getResultHandler(final 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 AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
 +          public void onComplete(java.lang.String o) {
-             registerReplicaLocation_result result = new registerReplicaLocation_result();
+             registerDataProduct_result result = new registerDataProduct_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             registerReplicaLocation_result result = new registerReplicaLocation_result();
+             registerDataProduct_result result = new registerDataProduct_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -35975,68 -33583,62 +36018,68 @@@
          return false;
        }
  
-       public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-         iface.registerReplicaLocation(args.authzToken, args.replicaLocationModel,resultHandler);
 -      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
++      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+         iface.registerDataProduct(args.authzToken, args.dataProductModel,resultHandler);
        }
      }
  
-     public static class getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
-       public getParentDataProduct() {
-         super("getParentDataProduct");
+     public static class getDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+       public getDataProduct() {
+         super("getDataProduct");
        }
  
-       public getParentDataProduct_args getEmptyArgsInstance() {
-         return new getParentDataProduct_args();
+       public getDataProduct_args getEmptyArgsInstance() {
+         return new getDataProduct_args();
        }
  
 -      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
          final org.apache.thrift.AsyncProcessFunction fcall = this;
 -        return new AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
 +        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
            public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
-             getParentDataProduct_result result = new getParentDataProduct_result();
+             getDataProduct_result result = new getDataProduct_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getParentDataProduct_result result = new getParentDataProduct_result();
+             getDataProduct_result result = new getDataProduct_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 
 -            {
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -36052,68 -33655,62 +36095,68 @@@
          return false;
        }
  
-       public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
-         iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
 -      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
++      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+         iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
        }
      }
  
-     public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
-       public getChildDataProducts() {
-         super("getChildDataProducts");
 -    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, String> {
++    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, java.lang.String> {
+       public registerReplicaLocation() {
+         super("registerReplicaLocation");
        }
  
-       public getChildDataProducts_args getEmptyArgsInstance() {
-         return new getChildDataProducts_args();
+       public registerReplicaLocation_args getEmptyArgsInstance() {
+         return new registerReplicaLocation_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<String> getResultHandler(final 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<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
-           public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
-             getChildDataProducts_result result = new getChildDataProducts_result();
 -        return new AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.String>() { 
++          public void onComplete(java.lang.String o) {
+             registerReplicaLocation_result result = new registerReplicaLocation_result();
              result.success = o;
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getChildDataProducts_result result = new getChildDataProducts_result();
+             registerReplicaLocation_result result = new registerReplicaLocation_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -36129,69 -33727,62 +36172,68 @@@
          return false;
        }
  
-       public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
-         iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
 -      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
++      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+         iface.registerReplicaLocation(args.authzToken, args.replicaLocationModel,resultHandler);
        }
      }
  
-     public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, java.lang.Boolean> {
-       public shareResourceWithUsers() {
-         super("shareResourceWithUsers");
+     public static class getParentDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getParentDataProduct_args, org.apache.airavata.model.data.replica.DataProductModel> {
+       public getParentDataProduct() {
+         super("getParentDataProduct");
        }
  
-       public shareResourceWithUsers_args getEmptyArgsInstance() {
-         return new shareResourceWithUsers_args();
+       public getParentDataProduct_args getEmptyArgsInstance() {
+         return new getParentDataProduct_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> 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) {
-             shareResourceWithUsers_result result = new shareResourceWithUsers_result();
 -        return new AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
++        return new org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel>() { 
+           public void onComplete(org.apache.airavata.model.data.replica.DataProductModel o) {
+             getParentDataProduct_result result = new getParentDataProduct_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             shareResourceWithUsers_result result = new shareResourceWithUsers_result();
+             getParentDataProduct_result result = new getParentDataProduct_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -36207,69 -33799,62 +36249,68 @@@
          return false;
        }
  
-       public void start(I iface, shareResourceWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.shareResourceWithUsers(args.authzToken, args.resourceId, args.userPermissionList,resultHandler);
 -      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
++      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws org.apache.thrift.TException {
+         iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
        }
      }
  
-     public static class shareResourceWithGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithGroups_args, java.lang.Boolean> {
-       public shareResourceWithGroups() {
-         super("shareResourceWithGroups");
 -    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, List<org.apache.airavata.model.data.replica.DataProductModel>> {
++    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> {
+       public getChildDataProducts() {
+         super("getChildDataProducts");
        }
  
-       public shareResourceWithGroups_args getEmptyArgsInstance() {
-         return new shareResourceWithGroups_args();
+       public getChildDataProducts_args getEmptyArgsInstance() {
+         return new getChildDataProducts_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++      public org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> 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) {
-             shareResourceWithGroups_result result = new shareResourceWithGroups_result();
 -        return new AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
 -          public void onComplete(List<org.apache.airavata.model.data.replica.DataProductModel> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
++          public void onComplete(java.util.List<org.apache.airavata.model.data.replica.DataProductModel> o) {
+             getChildDataProducts_result result = new getChildDataProducts_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             shareResourceWithGroups_result result = new shareResourceWithGroups_result();
+             getChildDataProducts_result result = new getChildDataProducts_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 
 -            {
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -36285,147 -33871,63 +36326,147 @@@
          return false;
        }
  
-       public void start(I iface, shareResourceWithGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.shareResourceWithGroups(args.authzToken, args.resourceId, args.groupPermissionList,resultHandler);
 -      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws TException {
++      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws org.apache.thrift.TException {
+         iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
        }
      }
  
-     public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, java.lang.Boolean> {
-       public revokeSharingOfResourceFromUsers() {
-         super("revokeSharingOfResourceFromUsers");
 -    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, Boolean> {
++    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, java.lang.Boolean> {
+       public shareResourceWithUsers() {
+         super("shareResourceWithUsers");
        }
  
-       public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
-         return new revokeSharingOfResourceFromUsers_args();
+       public shareResourceWithUsers_args getEmptyArgsInstance() {
+         return new shareResourceWithUsers_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 +        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
 +          public void onComplete(java.lang.Boolean o) {
-             revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
+             shareResourceWithUsers_result result = new shareResourceWithUsers_result();
              result.success = o;
              result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
+             shareResourceWithUsers_result result = new shareResourceWithUsers_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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
-       public void start(I iface, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.userPermissionList,resultHandler);
++      public void start(I iface, shareResourceWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
++        iface.shareResourceWithUsers(args.authzToken, args.resourceId, args.userPermissionList,resultHandler);
 +      }
 +    }
 +
-     public static class revokeSharingOfResourceFromGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromGroups_args, java.lang.Boolean> {
-       public revokeSharingOfResourceFromGroups() {
-         super("revokeSharingOfResourceFromGroups");
++    public static class shareResourceWithGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithGroups_args, java.lang.Boolean> {
++      public shareResourceWithGroups() {
++        super("shareResourceWithGroups");
 +      }
 +
-       public revokeSharingOfResourceFromGroups_args getEmptyArgsInstance() {
-         return new revokeSharingOfResourceFromGroups_args();
++      public shareResourceWithGroups_args getEmptyArgsInstance() {
++        return new shareResourceWithGroups_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) {
-             revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_result();
++            shareResourceWithGroups_result result = new shareResourceWithGroups_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);
              }
 -             else 
 -            {
 +          }
 +          public void onError(java.lang.Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TSerializable msg;
-             revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_result();
++            shareResourceWithGroups_result result = new shareResourceWithGroups_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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -36441,145 -33944,63 +36482,147 @@@
          return false;
        }
  
-       public void start(I iface, revokeSharingOfResourceFromGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-         iface.revokeSharingOfResourceFromGroups(args.authzToken, args.resourceId, args.groupPermissionList,resultHandler);
 -      public void start(I iface, shareResourceWithUsers_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
 -        iface.shareResourceWithUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
++      public void start(I iface, shareResourceWithGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
++        iface.shareResourceWithGroups(args.authzToken, args.resourceId, args.groupPermissionList,resultHandler);
        }
      }
  
-     public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, java.util.List<java.lang.String>> {
-       public getAllAccessibleUsers() {
-         super("getAllAccessibleUsers");
 -    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, Boolean> {
++    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, java.lang.Boolean> {
+       public revokeSharingOfResourceFromUsers() {
+         super("revokeSharingOfResourceFromUsers");
        }
  
-       public getAllAccessibleUsers_args getEmptyArgsInstance() {
-         return new getAllAccessibleUsers_args();
+       public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
+         return new revokeSharingOfResourceFromUsers_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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.util.List<java.lang.String>>() { 
-           public void onComplete(java.util.List<java.lang.String> o) {
-             getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
 -        return new AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
+             revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
              result.success = o;
+             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
+             revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
-       public void start(I iface, getAllAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllAccessibleUsers(args.authzToken, args.resourceId, args.permissionType,resultHandler);
++      public void start(I iface, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
++        iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.userPermissionList,resultHandler);
 +      }
 +    }
 +
-     public static class getAllAccessibleGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleGroups_args, java.util.List<java.lang.String>> {
-       public getAllAccessibleGroups() {
-         super("getAllAccessibleGroups");
++    public static class revokeSharingOfResourceFromGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromGroups_args, java.lang.Boolean> {
++      public revokeSharingOfResourceFromGroups() {
++        super("revokeSharingOfResourceFromGroups");
 +      }
 +
-       public getAllAccessibleGroups_args getEmptyArgsInstance() {
-         return new getAllAccessibleGroups_args();
++      public revokeSharingOfResourceFromGroups_args getEmptyArgsInstance() {
++        return new revokeSharingOfResourceFromGroups_args();
 +      }
 +
-       public org.apache.thrift.async.AsyncMethodCallback<java.util.List<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.util.List<java.lang.String>>() { 
-           public void onComplete(java.util.List<java.lang.String> o) {
-             getAllAccessibleGroups_result result = new getAllAccessibleGroups_result();
++        return new org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean>() { 
++          public void onComplete(java.lang.Boolean o) {
++            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_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);
              }
 -             else 
 -            {
 +          }
 +          public void onError(java.lang.Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TSerializable msg;
-             getAllAccessibleGroups_result result = new getAllAccessibleGroups_result();
++            revokeSharingOfResourceFromGroups_result result = new revokeSharingOfResourceFromGroups_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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -36595,146 -34017,62 +36638,145 @@@
          return false;
        }
  
-       public void start(I iface, getAllAccessibleGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
-         iface.getAllAccessibleGroups(args.authzToken, args.resourceId, args.permissionType,resultHandler);
 -      public void start(I iface, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
 -        iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
++      public void start(I iface, revokeSharingOfResourceFromGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
++        iface.revokeSharingOfResourceFromGroups(args.authzToken, args.resourceId, args.groupPermissionList,resultHandler);
        }
      }
  
-     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 getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, List<String>> {
++    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, java.util.List<java.lang.String>> {
+       public getAllAccessibleUsers() {
+         super("getAllAccessibleUsers");
        }
  
-       public userHasAccess_args getEmptyArgsInstance() {
-         return new userHasAccess_args();
+       public getAllAccessibleUsers_args getEmptyArgsInstance() {
+         return new getAllAccessibleUsers_args();
        }
  
-       public org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
 -      public AsyncMethodCallback<List<String>> getResultHandler(final 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 AsyncMethodCallback<List<String>>() { 
 -          public void onComplete(List<String> o) {
++        return new org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>>() { 
++          public void onComplete(java.util.List<java.lang.String> o) {
+             getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
              result.success = o;
-             result.setSuccessIsSet(true);
              try {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 +            org.apache.thrift.TSerializable msg;
-             userHasAccess_result result = new userHasAccess_result();
+             getAllAccessibleUsers_result result = new getAllAccessibleUsers_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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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, getAllAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
++        iface.getAllAccessibleUsers(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 getAllAccessibleGroups<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleGroups_args, java.util.List<java.lang.String>> {
++      public getAllAccessibleGroups() {
++        super("getAllAccessibleGroups");
 +      }
 +
-       public createGroupResourceProfile_args getEmptyArgsInstance() {
-         return new createGroupResourceProfile_args();
++      public getAllAccessibleGroups_args getEmptyArgsInstance() {
++        return new getAllAccessibleGroups_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) {
++            getAllAccessibleGroups_result result = new getAllAccessibleGroups_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);
              }
 -             else 
 -            {
 +          }
 +          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();
++            getAllAccessibleGroups_result result = new getAllAccessibleGroups_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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -36750,306 -34089,70 +36792,306 @@@
          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, getAllAccessibleUsers_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws TException {
 -        iface.getAllAccessibleUsers(args.authzToken, args.resourceId, args.resourceType, args.permissionType,resultHandler);
++      public void start(I iface, getAllAccessibleGroups_args args, org.apache.thrift.async.AsyncMethodCallback<java.util.List<java.lang.String>> resultHandler) throws org.apache.thrift.TException {
++        iface.getAllAccessibleGroups(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 createGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroup_args, String> {
 -      public createGroup() {
 -        super("createGroup");
++    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 createGroup_args getEmptyArgsInstance() {
 -        return new createGroup_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 AsyncMethodCallback<String> getResultHandler(final 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 AsyncMethodCallback<String>() { 
 -          public void onComplete(String o) {
 -            createGroup_result result = new createGroup_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);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            createGroup_result result = new createGroup_result();
 +            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);
 -                        msg = result;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
 -                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
 -                        result.setAceIsSet(true);
 -                        msg = result;
 +            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, 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);
 +            } 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);
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +          }
 +          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);
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -             else 
 -            {
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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) {
 +              _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;
-             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);
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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, 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);
 +            } 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;
-             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);
 +              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;
 -            } catch (Exception ex) {
 -              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            } 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();
              }
 -            fb.close();
            }
          };
        }
@@@ -37058,147 -34161,63 +37100,146 @@@
          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, createGroup_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
 -        iface.createGroup(args.authzToken, args.groupModel,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 updateGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroup_args, Boolean> {
 -      public updateGroup() {
 -        super("updateGroup");
++    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 updateGroup_args getEmptyArgsInstance() {
 -        return new updateGroup_args();
++      public removeGroupResourceProfile_args getEmptyArgsInstance() {
++        return new removeGroupResourceProfile_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 -            updateGroup_result result = new updateGroup_result();
 +        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 {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            updateGroup_result result = new updateGroup_result();
 +            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);
 -                        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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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) {
 +              _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);
              }
 -             else 
 -            {
 +          }
 +          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);
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -37214,223 -34234,63 +37255,147 @@@
          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, updateGroup_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
 -        iface.updateGroup(args.authzToken, args.groupModel,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 deleteGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGroup_args, Boolean> {
 -      public deleteGroup() {
 -        super("deleteGroup");
++    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 deleteGroup_args getEmptyArgsInstance() {
 -        return new deleteGroup_args();
++      public removeGroupComputePrefs_args getEmptyArgsInstance() {
++        return new removeGroupComputePrefs_args();
        }
  
 -      public AsyncMethodCallback<Boolean> getResultHandler(final 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 AsyncMethodCallback<Boolean>() { 
 -          public void onComplete(Boolean o) {
 -            deleteGroup_result result = new deleteGroup_result();
 +        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 {
 -              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            deleteGroup_result result = new deleteGroup_result();
 +            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);
 -                        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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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) {
 +              _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);
              }
 -             else 
 -            {
 +          }
 +          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);
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
              }
              try {
                fcall.sendResponse(fb,msg,msgType,seqid);
@@@ -37446,299 -34307,134 +37411,531 @@@
          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, deleteGroup_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
 -        iface.deleteGroup(args.authzToken, args.groupId, args.ownerId,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 getGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getGroup_args, org.apache.airavata.model.group.GroupModel> {
 -      public getGroup() {
 -        super("getGroup");
++    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 getGroup_args getEmptyArgsInstance() {
 -        return new getGroup_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 AsyncMethodCallback<org.apache.airavata.model.group.GroupModel> getResultHandler(final 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 AsyncMethodCallback<org.apache.airavata.model.group.GroupModel>() { 
 -          public void onComplete(org.apache.airavata.model.group.GroupModel o) {
 -            getGroup_result result = new getGroup_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);
 -              return;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
 +              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);
              }
 -            fb.close();
            }
 -          public void onError(Exception e) {
 +          public void onError(java.lang.Exception e) {
              byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            getGroup_result result = new getGroup_result();
 +            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);
 -                        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;
 +              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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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);
 +            } 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);
              }
 -             else 
 -            {
 +          }
 +          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);
 +              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 = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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, 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);
 +            } 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;
-             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);
++              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;
 -            } catch (Exception ex) {
 -              LOGGER.error("Exception writing to internal frame buffer", ex);
++            } 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();
+             }
 -            fb.close();
+           }
+         };
+       }
+ 
+       protected boolean isOneway() {
+         return false;
+       }
+ 
 -      public void start(I iface, getGroup_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.group.GroupModel> resultHandler) throws TException {
 -        iface.getGroup(args.authzToken, args.groupId,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 getAllGroupsUserBelongs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllGroupsUserBelongs_args, List<org.apache.airavata.model.group.GroupModel>> {
 -      public getAllGroupsUserBelongs() {
 -        super("getAllGroupsUserBelongs");
++    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 getAllGroupsUserBelongs_args getEmptyArgsInstance() {
 -        return new getAllGroupsUserBelongs_args();
++      public getBatchQueueResourcePolicy_args getEmptyArgsInstance() {
++        return new getBatchQueueResourcePolicy_args();
+       }
+ 
 -      public AsyncMethodCallback<List<org.apache.airavata.model.group.GroupModel>> getResultHandler(final 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 AsyncMethodCallback<List<org.apache.airavata.model.group.GroupModel>>() { 
 -          public void onComplete(List<org.apache.airavata.model.group.GroupModel> o) {
 -            getAllGroupsUserBelongs_result result = new getAllGroupsUserBelongs_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);
++              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;
++            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);
++              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;
 -            } catch (Exception e) {
 -              LOGGER.error("Exception writing to internal frame buffer", e);
++            } 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, 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 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 getGroupComputeResourcePrefList_args getEmptyArgsInstance() {
++        return new getGroupComputeResourcePrefList_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) {
++        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();
++            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);
+             }
 -            fb.close();
+           }
 -          public void onError(Exception e) {
++          public void onError(java.lang.Exception e) {
+             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 -            org.apache.thrift.TBase msg;
 -            getAllGroupsUserBelongs_result result = new getAllGroupsUserBelongs_result();
++            org.apache.thrift.TSerializable msg;
++            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);
 -                        msg = result;
++              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());
+             }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataClientException) {
 -                        result.ace = (org.apache.airavata.model.error.AiravataClientException) e;
 -                        result.setAceIsSet(true);
 -                        msg = result;
++            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, 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 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 getGroupBatchQueueResourcePolicyList_args getEmptyArgsInstance() {
++        return new getGroupBatchQueueResourcePolicyList_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) {
++        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();
++            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);
+             }
 -            else             if (e instanceof org.apache.airavata.model.error.AiravataSystemException) {
 -                        result.ase = (org.apache.airavata.model.error.AiravataSystemException) e;
 -                        result.setAseIsSet(true);
 -                        msg = result;
++          }
++          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();
 +            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());
              }
 -            else             if (e instanceof org.apache.airavata.model.error.AuthorizationException) {
 -                        result.ae = (org.apache.airavata.model.error.AuthorizationException) e;
 -                        result.setAeIsSet(true);
 -                        msg = result;
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +            } catch (java.lang.Exception ex) {
 +              _LOGGER.error("Exception writing to internal frame buffer", ex);
 +              fb.close();
              }
 -             else 
 -            {
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        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 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 getGroupComputeResourcePolicyList_args getEmptyArgsInstance() {
 +        return new getGroupComputeResourcePolicyList_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) {
 +        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();
 +            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;
 +            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);
 +              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.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
 +              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);
@@@ -88743,8 -86814,1365 +88940,1431 @@@
      }
  
      @Override
 -    public String toString() {
 -      StringBuilder sb = new StringBuilder("updateExperiment_args(");
 +    public java.lang.String toString() {
-       java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_args(");
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_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("experiment:");
 -      if (this.experiment == null) {
 -        sb.append("null");
 -      } else {
 -        sb.append(this.experiment);
 -      }
 -      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 (airavataExperimentId == null) {
+         throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
+       }
 -      if (experiment == null) {
 -        throw new org.apache.thrift.protocol.TProtocolException("Required field 'experiment' was not present! Struct: " + toString());
 -      }
+       // check for sub-struct validity
+       if (authzToken != null) {
+         authzToken.validate();
+       }
 -      if (experiment != null) {
 -        experiment.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, ClassNotFoundException {
++    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 updateExperiment_argsStandardSchemeFactory implements SchemeFactory {
 -      public updateExperiment_argsStandardScheme getScheme() {
 -        return new updateExperiment_argsStandardScheme();
++    private static class validateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public validateExperiment_argsStandardScheme getScheme() {
++        return new validateExperiment_argsStandardScheme();
+       }
+     }
+ 
 -    private static class updateExperiment_argsStandardScheme extends StandardScheme<updateExperiment_args> {
++    private static class validateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_args> {
+ 
 -      public void read(org.apache.thrift.protocol.TProtocol iprot, updateExperiment_args struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_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: // EXPERIMENT
 -              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
 -                struct.experiment = new org.apache.airavata.model.experiment.ExperimentModel();
 -                struct.experiment.read(iprot);
 -                struct.setExperimentIsSet(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, updateExperiment_args struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol oprot, validateExperiment_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.experiment != null) {
 -          oprot.writeFieldBegin(EXPERIMENT_FIELD_DESC);
 -          struct.experiment.write(oprot);
 -          oprot.writeFieldEnd();
 -        }
+         oprot.writeFieldStop();
+         oprot.writeStructEnd();
+       }
+ 
+     }
+ 
 -    private static class updateExperiment_argsTupleSchemeFactory implements SchemeFactory {
 -      public updateExperiment_argsTupleScheme getScheme() {
 -        return new updateExperiment_argsTupleScheme();
++    private static class validateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public validateExperiment_argsTupleScheme getScheme() {
++        return new validateExperiment_argsTupleScheme();
+       }
+     }
+ 
 -    private static class updateExperiment_argsTupleScheme extends TupleScheme<updateExperiment_args> {
++    private static class validateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_args> {
+ 
+       @Override
 -      public void write(org.apache.thrift.protocol.TProtocol prot, updateExperiment_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol oprot = (TTupleProtocol) prot;
++      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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.airavataExperimentId);
 -        struct.experiment.write(oprot);
+       }
+ 
+       @Override
 -      public void read(org.apache.thrift.protocol.TProtocol prot, updateExperiment_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol iprot = (TTupleProtocol) prot;
++      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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.airavataExperimentId = iprot.readString();
+         struct.setAiravataExperimentIdIsSet(true);
 -        struct.experiment = new org.apache.airavata.model.experiment.ExperimentModel();
 -        struct.experiment.read(iprot);
 -        struct.setExperimentIsSet(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 updateExperiment_result implements org.apache.thrift.TBase<updateExperiment_result, updateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateExperiment_result>   {
 -    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateExperiment_result");
++  public static class validateExperiment_result implements org.apache.thrift.TBase<validateExperiment_result, validateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<validateExperiment_result>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validateExperiment_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 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 Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 -    static {
 -      schemes.put(StandardScheme.class, new updateExperiment_resultStandardSchemeFactory());
 -      schemes.put(TupleScheme.class, new updateExperiment_resultTupleSchemeFactory());
 -    }
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new validateExperiment_resultStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validateExperiment_resultTupleSchemeFactory();
+ 
++    public boolean 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");
+ 
 -      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
++      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+ 
+       static {
 -        for (_Fields field : EnumSet.allOf(_Fields.class)) {
++        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: // 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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++        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(String name) {
++      public static _Fields findByName(java.lang.String name) {
+         return byName.get(name);
+       }
+ 
+       private final short _thriftId;
 -      private final String _fieldName;
++      private final java.lang.String _fieldName;
+ 
 -      _Fields(short thriftId, String fieldName) {
++      _Fields(short thriftId, java.lang.String fieldName) {
+         _thriftId = thriftId;
+         _fieldName = fieldName;
+       }
+ 
+       public short getThriftFieldId() {
+         return _thriftId;
+       }
+ 
 -      public String getFieldName() {
++      public java.lang.String getFieldName() {
+         return _fieldName;
+       }
+     }
+ 
+     // isset id assignments
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++    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 {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++      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)));
+       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
 -          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
++          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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
++          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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
++          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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
++          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.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
 -      metaDataMap = Collections.unmodifiableMap(tmpMap);
 -      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateExperiment_result.class, metaDataMap);
++          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(validateExperiment_result.class, metaDataMap);
+     }
+ 
 -    public updateExperiment_result() {
++    public validateExperiment_result() {
+     }
+ 
 -    public updateExperiment_result(
++    public validateExperiment_result(
++      boolean 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;
++      setSuccessIsSet(true);
+       this.ire = ire;
+       this.enf = enf;
+       this.ace = ace;
+       this.ase = ase;
+       this.ae = ae;
+     }
+ 
+     /**
+      * Performs a deep copy on <i>other</i>.
+      */
 -    public updateExperiment_result(updateExperiment_result other) {
++    public validateExperiment_result(validateExperiment_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);
+       }
+       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 updateExperiment_result deepCopy() {
 -      return new updateExperiment_result(this);
++    public validateExperiment_result deepCopy() {
++      return new validateExperiment_result(this);
+     }
+ 
+     @Override
+     public void clear() {
++      setSuccessIsSet(false);
++      this.success = false;
+       this.ire = null;
+       this.enf = null;
+       this.ace = null;
+       this.ase = null;
+       this.ae = null;
+     }
+ 
++    public boolean isSuccess() {
++      return this.success;
++    }
++
++    public validateExperiment_result setSuccess(boolean success) {
++      this.success = success;
++      setSuccessIsSet(true);
++      return this;
++    }
++
++    public void unsetSuccess() {
++      __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 org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
++    }
++
++    public void setSuccessIsSet(boolean value) {
++      __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 updateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
++    public validateExperiment_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 updateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
++    public validateExperiment_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 updateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
++    public validateExperiment_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 updateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
++    public validateExperiment_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 updateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
++    public validateExperiment_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, Object value) {
++    public void setFieldValue(_Fields field, java.lang.Object value) {
+       switch (field) {
++      case SUCCESS:
++        if (value == null) {
++          unsetSuccess();
++        } else {
++          setSuccess((java.lang.Boolean)value);
++        }
++        break;
++
+       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 Object getFieldValue(_Fields field) {
++    public java.lang.Object getFieldValue(_Fields field) {
+       switch (field) {
++      case SUCCESS:
++        return isSuccess();
++
+       case IRE:
+         return getIre();
+ 
+       case ENF:
+         return getEnf();
+ 
+       case ACE:
+         return getAce();
+ 
+       case ASE:
+         return getAse();
+ 
+       case AE:
+         return getAe();
+ 
+       }
 -      throw new IllegalStateException();
++      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 IllegalArgumentException();
++        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();
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     @Override
 -    public boolean equals(Object that) {
++    public boolean equals(java.lang.Object that) {
+       if (that == null)
+         return false;
 -      if (that instanceof updateExperiment_result)
 -        return this.equals((updateExperiment_result)that);
++      if (that instanceof validateExperiment_result)
++        return this.equals((validateExperiment_result)that);
+       return false;
+     }
+ 
 -    public boolean equals(updateExperiment_result that) {
++    public boolean equals(validateExperiment_result that) {
+       if (that == null)
+         return false;
++      if (this == that)
++        return true;
++
++      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 != 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;
+       }
+ 
+       return true;
+     }
+ 
+     @Override
+     public int hashCode() {
 -      List<Object> list = new ArrayList<Object>();
++      int hashCode = 1;
++
++      hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+ 
 -      boolean present_ire = true && (isSetIre());
 -      list.add(present_ire);
 -      if (present_ire)
 -        list.add(ire);
++      hashCode = hashCode * 8191 + ((isSetIre()) ? 131071 : 524287);
++      if (isSetIre())
++        hashCode = hashCode * 8191 + ire.hashCode();
+ 
 -      boolean present_enf = true && (isSetEnf());
 -      list.add(present_enf);
 -      if (present_enf)
 -        list.add(enf);
++      hashCode = hashCode * 8191 + ((isSetEnf()) ? 131071 : 524287);
++      if (isSetEnf())
++        hashCode = hashCode * 8191 + enf.hashCode();
+ 
 -      boolean present_ace = true && (isSetAce());
 -      list.add(present_ace);
 -      if (present_ace)
 -        list.add(ace);
++      hashCode = hashCode * 8191 + ((isSetAce()) ? 131071 : 524287);
++      if (isSetAce())
++        hashCode = hashCode * 8191 + ace.hashCode();
+ 
 -      boolean present_ase = true && (isSetAse());
 -      list.add(present_ase);
 -      if (present_ase)
 -        list.add(ase);
++      hashCode = hashCode * 8191 + ((isSetAse()) ? 131071 : 524287);
++      if (isSetAse())
++        hashCode = hashCode * 8191 + ase.hashCode();
+ 
 -      boolean present_ae = true && (isSetAe());
 -      list.add(present_ae);
 -      if (present_ae)
 -        list.add(ae);
++      hashCode = hashCode * 8191 + ((isSetAe()) ? 131071 : 524287);
++      if (isSetAe())
++        hashCode = hashCode * 8191 + ae.hashCode();
+ 
 -      return list.hashCode();
++      return hashCode;
+     }
+ 
+     @Override
 -    public int compareTo(updateExperiment_result other) {
++    public int compareTo(validateExperiment_result other) {
+       if (!getClass().equals(other.getClass())) {
+         return getClass().getName().compareTo(other.getClass().getName());
+       }
+ 
+       int lastComparison = 0;
+ 
 -      lastComparison = Boolean.valueOf(isSetIre()).compareTo(other.isSetIre());
++      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 = Boolean.valueOf(isSetEnf()).compareTo(other.isSetEnf());
++      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 = Boolean.valueOf(isSetAce()).compareTo(other.isSetAce());
++      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 = Boolean.valueOf(isSetAse()).compareTo(other.isSetAse());
++      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 = Boolean.valueOf(isSetAe()).compareTo(other.isSetAe());
++      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 {
 -      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++      scheme(iprot).read(iprot, this);
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 -      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++      scheme(oprot).write(oprot, this);
+       }
+ 
+     @Override
 -    public String toString() {
 -      StringBuilder sb = new StringBuilder("updateExperiment_result(");
++    public java.lang.String toString() {
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("validateExperiment_result(");
+       boolean first = true;
+ 
++      sb.append("success:");
++      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;
+       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, ClassNotFoundException {
++    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 updateExperiment_resultStandardSchemeFactory implements SchemeFactory {
 -      public updateExperiment_resultStandardScheme getScheme() {
 -        return new updateExperiment_resultStandardScheme();
++    private static class validateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public validateExperiment_resultStandardScheme getScheme() {
++        return new validateExperiment_resultStandardScheme();
+       }
+     }
+ 
 -    private static class updateExperiment_resultStandardScheme extends StandardScheme<updateExperiment_result> {
++    private static class validateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_result> {
+ 
 -      public void read(org.apache.thrift.protocol.TProtocol iprot, updateExperiment_result struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_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.BOOL) {
++                struct.success = iprot.readBool();
++                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;
+             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, updateExperiment_result struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol oprot, validateExperiment_result struct) throws org.apache.thrift.TException {
+         struct.validate();
+ 
+         oprot.writeStructBegin(STRUCT_DESC);
++        if (struct.isSetSuccess()) {
++          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
++          oprot.writeBool(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();
+         }
+         oprot.writeFieldStop();
+         oprot.writeStructEnd();
+       }
+ 
+     }
+ 
 -    private static class updateExperiment_resultTupleSchemeFactory implements SchemeFactory {
 -      public updateExperiment_resultTupleScheme getScheme() {
 -        return new updateExperiment_resultTupleScheme();
++    private static class validateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public validateExperiment_resultTupleScheme getScheme() {
++        return new validateExperiment_resultTupleScheme();
+       }
+     }
+ 
 -    private static class updateExperiment_resultTupleScheme extends TupleScheme<updateExperiment_result> {
++    private static class validateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_result> {
+ 
+       @Override
 -      public void write(org.apache.thrift.protocol.TProtocol prot, updateExperiment_result struct) throws org.apache.thrift.TException {
 -        TTupleProtocol oprot = (TTupleProtocol) prot;
 -        BitSet optionals = new BitSet();
 -        if (struct.isSetIre()) {
++      public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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.isSetEnf()) {
++        if (struct.isSetIre()) {
+           optionals.set(1);
+         }
 -        if (struct.isSetAce()) {
++        if (struct.isSetEnf()) {
+           optionals.set(2);
+         }
 -        if (struct.isSetAse()) {
++        if (struct.isSetAce()) {
+           optionals.set(3);
+         }
 -        if (struct.isSetAe()) {
++        if (struct.isSetAse()) {
+           optionals.set(4);
+         }
 -        oprot.writeBitSet(optionals, 5);
++        if (struct.isSetAe()) {
++          optionals.set(5);
++        }
++        oprot.writeBitSet(optionals, 6);
++        if (struct.isSetSuccess()) {
++          oprot.writeBool(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);
+         }
+       }
+ 
+       @Override
 -      public void read(org.apache.thrift.protocol.TProtocol prot, updateExperiment_result struct) throws org.apache.thrift.TException {
 -        TTupleProtocol iprot = (TTupleProtocol) prot;
 -        BitSet incoming = iprot.readBitSet(5);
++      public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_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(6);
+         if (incoming.get(0)) {
++          struct.success = iprot.readBool();
++          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)) {
++        if (incoming.get(2)) {
+           struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
+           struct.enf.read(iprot);
+           struct.setEnfIsSet(true);
+         }
 -        if (incoming.get(2)) {
++        if (incoming.get(3)) {
+           struct.ace = new org.apache.airavata.model.error.AiravataClientException();
+           struct.ace.read(iprot);
+           struct.setAceIsSet(true);
+         }
 -        if (incoming.get(3)) {
++        if (incoming.get(4)) {
+           struct.ase = new org.apache.airavata.model.error.AiravataSystemException();
+           struct.ase.read(iprot);
+           struct.setAseIsSet(true);
+         }
 -        if (incoming.get(4)) {
++        if (incoming.get(5)) {
+           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 updateExperimentConfiguration_args implements org.apache.thrift.TBase<updateExperimentConfiguration_args, updateExperimentConfiguration_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateExperimentConfiguration_args>   {
 -    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateExperimentConfiguration_args");
++  public static class launchExperiment_args implements org.apache.thrift.TBase<launchExperiment_args, launchExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_args>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_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 USER_CONFIGURATION_FIELD_DESC = new org.apache.thrift.protocol.TField("userConfiguration", 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)3);
+ 
 -    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 -    static {
 -      schemes.put(StandardScheme.class, new updateExperimentConfiguration_argsStandardSchemeFactory());
 -      schemes.put(TupleScheme.class, new updateExperimentConfiguration_argsTupleSchemeFactory());
 -    }
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_argsStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_argsTupleSchemeFactory();
+ 
+     public org.apache.airavata.model.security.AuthzToken authzToken; // required
 -    public String airavataExperimentId; // required
 -    public org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration; // 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"),
 -      USER_CONFIGURATION((short)3, "userConfiguration");
++      GATEWAY_ID((short)3, "gatewayId");
+ 
 -      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
++      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
+ 
+       static {
 -        for (_Fields field : EnumSet.allOf(_Fields.class)) {
++        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: // USER_CONFIGURATION
 -            return USER_CONFIGURATION;
++          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 IllegalArgumentException("Field " + fieldId + " doesn't exist!");
++        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(String name) {
++      public static _Fields findByName(java.lang.String name) {
+         return byName.get(name);
+       }
+ 
+       private final short _thriftId;
 -      private final String _fieldName;
++      private final java.lang.String _fieldName;
+ 
 -      _Fields(short thriftId, String fieldName) {
++      _Fields(short thriftId, java.lang.String fieldName) {
+         _thriftId = thriftId;
+         _fieldName = fieldName;
+       }
+ 
+       public short getThriftFieldId() {
+         return _thriftId;
+       }
+ 
 -      public String getFieldName() {
++      public java.lang.String getFieldName() {
+         return _fieldName;
+       }
+     }
+ 
+     // isset id assignments
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+     static {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++      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.REQUIRED, 
+           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 -      tmpMap.put(_Fields.USER_CONFIGURATION, new org.apache.thrift.meta_data.FieldMetaData("userConfiguration", org.apache.thrift.TFieldRequirementType.REQUIRED, 
 -          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.experiment.UserConfigurationDataModel.class)));
 -      metaDataMap = Collections.unmodifiableMap(tmpMap);
 -      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateExperimentConfiguration_args.class, metaDataMap);
++      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(launchExperiment_args.class, metaDataMap);
+     }
+ 
 -    public updateExperimentConfiguration_args() {
++    public launchExperiment_args() {
+     }
+ 
 -    public updateExperimentConfiguration_args(
++    public launchExperiment_args(
+       org.apache.airavata.model.security.AuthzToken authzToken,
 -      String airavataExperimentId,
 -      org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration)
++      java.lang.String airavataExperimentId,
++      java.lang.String gatewayId)
+     {
+       this();
+       this.authzToken = authzToken;
+       this.airavataExperimentId = airavataExperimentId;
 -      this.userConfiguration = userConfiguration;
++      this.gatewayId = gatewayId;
+     }
+ 
+     /**
+      * Performs a deep copy on <i>other</i>.
+      */
 -    public updateExperimentConfiguration_args(updateExperimentConfiguration_args other) {
++    public launchExperiment_args(launchExperiment_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.isSetUserConfiguration()) {
 -        this.userConfiguration = new org.apache.airavata.model.experiment.UserConfigurationDataModel(other.userConfiguration);
++      if (other.isSetGatewayId()) {
++        this.gatewayId = other.gatewayId;
+       }
+     }
+ 
 -    public updateExperimentConfiguration_args deepCopy() {
 -      return new updateExperimentConfiguration_args(this);
++    public launchExperiment_args deepCopy() {
++      return new launchExperiment_args(this);
+     }
+ 
+     @Override
+     public void clear() {
+       this.authzToken = null;
+       this.airavataExperimentId = null;
 -      this.userConfiguration = null;
++      this.gatewayId = null;
+     }
+ 
+     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
+       return this.authzToken;
+     }
+ 
 -    public updateExperimentConfiguration_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
++    public launchExperiment_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 String getAiravataExperimentId() {
++    public java.lang.String getAiravataExperimentId() {
+       return this.airavataExperimentId;
+     }
+ 
 -    public updateExperimentConfiguration_args setAiravataExperimentId(String airavataExperimentId) {
++    public launchExperiment_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 org.apache.airavata.model.experiment.UserConfigurationDataModel getUserConfiguration() {
 -      return this.userConfiguration;
++    public java.lang.String getGatewayId() {
++      return this.gatewayId;
+     }
+ 
 -    public updateExperimentConfiguration_args setUserConfiguration(org.apache.airavata.model.experiment.UserConfigurationDataModel userConfiguration) {
 -      this.userConfiguration = userConfiguration;
++    public launchExperiment_args setGatewayId(java.lang.String gatewayId) {
++      this.gatewayId = gatewayId;
+       return this;
+     }
+ 
 -    public void unsetUserConfiguration() {
 -      this.userConfiguration = null;
++    public void unsetGatewayId() {
++      this.gatewayId = null;
+     }
+ 
 -    /** Returns true if field userConfiguration is set (has been assigned a value) and false otherwise */
 -    public boolean isSetUserConfiguration() {
 -      return this.userConfiguration != 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 setUserConfigurationIsSet(boolean value) {
++    public void setGatewayIdIsSet(boolean value) {
+       if (!value) {
 -        this.userConfiguration = null;
++        this.gatewayId = null;
+       }
+     }
+ 
 -    public void setFieldValue(_Fields field, Object value) {
++    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((String)value);
++          setAiravataExperimentId((java.lang.String)value);
+         }
+         break;
+ 
 -      case USER_CONFIGURATION:
++      case GATEWAY_ID:
+         if (value == null) {
 -          unsetUserConfiguration();
++          unsetGatewayId();
+         } else {
 -          setUserConfiguration((org.apache.airavata.model.experiment.UserConfigurationDataModel)value);
++          setGatewayId((java.lang.String)value);
+         }
+         break;
+ 
+       }
+     }
+ 
 -    public Object getFieldValue(_Fields field) {
++    public java.lang.Object getFieldValue(_Fields field) {
+       switch (field) {
+       case AUTHZ_TOKEN:
+         return getAuthzToken();
+ 
+       case AIRAVATA_EXPERIMENT_ID:
+         return getAiravataExperimentId();
+ 
 -      case USER_CONFIGURATION:
 -        return getUserConfiguration();
++      case GATEWAY_ID:
++        return getGatewayId();
+ 
+       }
 -      throw new IllegalStateException();
++      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 IllegalArgumentException();
++        throw new java.lang.IllegalArgumentException();
+       }
+ 
+       switch (field) {
+       case AUTHZ_TOKEN:
+         return isSetAuthzToken();
+       case AIRAVATA_EXPERIMENT_ID:
+         return isSetAiravataExperimentId();
 -      case USER_CONFIGURATION:
 -        return isSetUserConfiguration();
++      case GATEWAY_ID:
++        return isSetGatewayId();
+       }
 -      throw new IllegalStateException();
++      throw new java.lang.IllegalStateException();
+     }
+ 
+     @Override
 -    public boolean equals(Object that) {
++    public boolean equals(java.lang.Object that) {
+       if (that == null)
+         return false;
 -      if (that instanceof updateExperimentConfiguration_args)
 -        return this.equals((updateExperimentConfiguration_args)that);
++      if (that instanceof launchExperiment_args)
++        return this.equals((launchExperiment_args)that);
+       return false;
+     }
+ 
 -    public boolean equals(updateExperimentConfiguration_args that) {
++    public boolean equals(launchExperiment_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_userConfiguration = true && this.isSetUserConfiguration();
 -      boolean that_present_userConfiguration = true && that.isSetUserConfiguration();
 -      if (this_present_userConfiguration || that_present_userConfiguration) {
 -        if (!(this_present_userConfiguration && that_present_userConfiguration))
++      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.userConfiguration.equals(that.userConfiguration))
++        if (!this.gatewayId.equals(that.gatewayId))
+           return false;
+       }
+ 
+       return true;
+     }
+ 
+     @Override
+     public int hashCode() {
 -      List<Object> list = new ArrayList<Object>();
++      int hashCode = 1;
+ 
 -      boolean present_authzToken = true && (isSetAuthzToken());
 -      list.add(present_authzToken);
 -      if (present_authzToken)
 -        list.add(authzToken);
++      hashCode = hashCode * 8191 + ((isSetAuthzToken()) ? 131071 : 524287);
++      if (isSetAuthzToken())
++        hashCode = hashCode * 8191 + authzToken.hashCode();
+ 
 -      boolean present_airavataExperimentId = true && (isSetAiravataExperimentId());
 -      list.add(present_airavataExperimentId);
 -      if (present_airavataExperimentId)
 -        list.add(airavataExperimentId);
++      hashCode = hashCode * 8191 + ((isSetAiravataExperimentId()) ? 131071 : 524287);
++      if (isSetAiravataExperimentId())
++        hashCode = hashCode * 8191 + airavataExperimentId.hashCode();
+ 
 -      boolean present_userConfiguration = true && (isSetUserConfiguration());
 -      list.add(present_userConfiguration);
 -      if (present_userConfiguration)
 -        list.add(userConfiguration);
++      hashCode = hashCode * 8191 + ((isSetGatewayId()) ? 131071 : 524287);
++      if (isSetGatewayId())
++        hashCode = hashCode * 8191 + gatewayId.hashCode();
+ 
 -      return list.hashCode();
++      return hashCode;
+     }
+ 
+     @Override
 -    public int compareTo(updateExperimentConfiguration_args other) {
++    public int compareTo(launchExperiment_args other) {
+       if (!getClass().equals(other.getClass())) {
+         return getClass().getName().compareTo(other.getClass().getName());
+       }
+ 
+       int lastComparison = 0;
+ 
 -      lastComparison = Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
++      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 = Boolean.valueOf(isSetAiravataExperimentId()).compareTo(other.isSetAiravataExperimentId());
++      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 = Boolean.valueOf(isSetUserConfiguration()).compareTo(other.isSetUserConfiguration());
++      lastComparison = java.lang.Boolean.valueOf(isSetGatewayId()).compareTo(other.isSetGatewayId());
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
 -      if (isSetUserConfiguration()) {
 -        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userConfiguration, other.userConfiguration);
++      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 {
 -      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
++      scheme(iprot).read(iprot, this);
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 -      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++      scheme(oprot).write(oprot, this);
+     }
+ 
+     @Override
 -    public String toString() {
 -      StringBuilder sb = new StringBuilder("updateExperimentConfiguration_args(");
++    public java.lang.String toString() {
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("launchExperiment_args(");
        boolean first = true;
  
        sb.append("authzToken:");
@@@ -88762,6 -88190,14 +90382,14 @@@
          sb.append(this.airavataExperimentId);
        }
        first = false;
+       if (!first) sb.append(", ");
 -      sb.append("userConfiguration:");
 -      if (this.userConfiguration == null) {
++      sb.append("gatewayId:");
++      if (this.gatewayId == null) {
+         sb.append("null");
+       } else {
 -        sb.append(this.userConfiguration);
++        sb.append(this.gatewayId);
+       }
+       first = false;
        sb.append(")");
        return sb.toString();
      }
@@@ -88774,6 -88210,9 +90402,9 @@@
        if (airavataExperimentId == null) {
          throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' was not present! Struct: " + toString());
        }
 -      if (userConfiguration == null) {
 -        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userConfiguration' 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();
@@@ -88796,15 -88238,15 +90427,15 @@@
        }
      }
  
-     private static class validateExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public validateExperiment_argsStandardScheme getScheme() {
-         return new validateExperiment_argsStandardScheme();
 -    private static class updateExperimentConfiguration_argsStandardSchemeFactory implements SchemeFactory {
 -      public updateExperimentConfiguration_argsStandardScheme getScheme() {
 -        return new updateExperimentConfiguration_argsStandardScheme();
++    private static class launchExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public launchExperiment_argsStandardScheme getScheme() {
++        return new launchExperiment_argsStandardScheme();
        }
      }
  
-     private static class validateExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_args> {
 -    private static class updateExperimentConfiguration_argsStandardScheme extends StandardScheme<updateExperimentConfiguration_args> {
++    private static class launchExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_args> {
  
-       public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_args struct) throws org.apache.thrift.TException {
 -      public void read(org.apache.thrift.protocol.TProtocol iprot, updateExperimentConfiguration_args struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_args struct) throws org.apache.thrift.TException {
          org.apache.thrift.protocol.TField schemeField;
          iprot.readStructBegin();
          while (true)
@@@ -88831,6 -88273,15 +90462,14 @@@
                  org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
                }
                break;
 -            case 3: // USER_CONFIGURATION
 -              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
 -                struct.userConfiguration = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
 -                struct.userConfiguration.read(iprot);
 -                struct.setUserConfigurationIsSet(true);
++            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);
            }
@@@ -88842,7 -88293,7 +90481,7 @@@
          struct.validate();
        }
  
-       public void write(org.apache.thrift.protocol.TProtocol oprot, validateExperiment_args struct) throws org.apache.thrift.TException {
 -      public void write(org.apache.thrift.protocol.TProtocol oprot, updateExperimentConfiguration_args struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_args struct) throws org.apache.thrift.TException {
          struct.validate();
  
          oprot.writeStructBegin(STRUCT_DESC);
@@@ -88856,76 -88307,70 +90495,81 @@@
            oprot.writeString(struct.airavataExperimentId);
            oprot.writeFieldEnd();
          }
 -        if (struct.userConfiguration != null) {
 -          oprot.writeFieldBegin(USER_CONFIGURATION_FIELD_DESC);
 -          struct.userConfiguration.write(oprot);
++        if (struct.gatewayId != null) {
++          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
++          oprot.writeString(struct.gatewayId);
+           oprot.writeFieldEnd();
+         }
          oprot.writeFieldStop();
          oprot.writeStructEnd();
        }
  
      }
  
-     private static class validateExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public validateExperiment_argsTupleScheme getScheme() {
-         return new validateExperiment_argsTupleScheme();
 -    private static class updateExperimentConfiguration_argsTupleSchemeFactory implements SchemeFactory {
 -      public updateExperimentConfiguration_argsTupleScheme getScheme() {
 -        return new updateExperimentConfiguration_argsTupleScheme();
++    private static class launchExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public launchExperiment_argsTupleScheme getScheme() {
++        return new launchExperiment_argsTupleScheme();
        }
      }
  
-     private static class validateExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_args> {
 -    private static class updateExperimentConfiguration_argsTupleScheme extends TupleScheme<updateExperimentConfiguration_args> {
++    private static class launchExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_args> {
  
        @Override
-       public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
 -      public void write(org.apache.thrift.protocol.TProtocol prot, updateExperimentConfiguration_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol oprot = (TTupleProtocol) prot;
++      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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.airavataExperimentId);
 -        struct.userConfiguration.write(oprot);
++        oprot.writeString(struct.gatewayId);
        }
  
        @Override
-       public void read(org.apache.thrift.protocol.TProtocol prot, validateExperiment_args struct) throws org.apache.thrift.TException {
 -      public void read(org.apache.thrift.protocol.TProtocol prot, updateExperimentConfiguration_args struct) throws org.apache.thrift.TException {
 -        TTupleProtocol iprot = (TTupleProtocol) prot;
++      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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.airavataExperimentId = iprot.readString();
          struct.setAiravataExperimentIdIsSet(true);
 -        struct.userConfiguration = new org.apache.airavata.model.experiment.UserConfigurationDataModel();
 -        struct.userConfiguration.read(iprot);
 -        struct.setUserConfigurationIsSet(true);
++        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 validateExperiment_result implements org.apache.thrift.TBase<validateExperiment_result, validateExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<validateExperiment_result>   {
-     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("validateExperiment_result");
 -  public static class updateExperimentConfiguration_result implements org.apache.thrift.TBase<updateExperimentConfiguration_result, updateExperimentConfiguration_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateExperimentConfiguration_result>   {
 -    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateExperimentConfiguration_result");
++  public static class launchExperiment_result implements org.apache.thrift.TBase<launchExperiment_result, launchExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_result>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_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 AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 +    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 validateExperiment_resultStandardSchemeFactory();
-     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new validateExperiment_resultTupleSchemeFactory();
 -    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 -    static {
 -      schemes.put(StandardScheme.class, new updateExperimentConfiguration_resultStandardSchemeFactory());
 -      schemes.put(TupleScheme.class, new updateExperimentConfiguration_resultTupleSchemeFactory());
 -    }
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new launchExperiment_resultStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_resultTupleSchemeFactory();
  
-     public boolean 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"),
 -      AE((short)1, "ae");
 +      IRE((short)1, "ire"),
 +      ENF((short)2, "enf"),
 +      ACE((short)3, "ace"),
 +      ASE((short)4, "ase"),
 +      AE((short)5, "ae");
  
 -      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 +      private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
  
        static {
 -        for (_Fields field : EnumSet.allOf(_Fields.class)) {
 +        for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
            byName.put(field.getFieldName(), field);
          }
        }
@@@ -88935,17 -88380,7 +90579,15 @@@
         */
        public static _Fields findByThriftId(int fieldId) {
          switch(fieldId) {
-           case 0: // SUCCESS
-             return SUCCESS;
 -          case 1: // AE
 +          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;
@@@ -88987,21119 -88422,48 +90629,21021 @@@
      }
  
      // isset id assignments
-     private static final int __SUCCESS_ISSET_ID = 0;
-     private byte __isset_bitfield = 0;
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 +    public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
      static {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 +      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)));
 +      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(validateExperiment_result.class, metaDataMap);
++      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchExperiment_result.class, metaDataMap);
 +    }
 +
-     public validateExperiment_result() {
++    public launchExperiment_result() {
 +    }
 +
-     public validateExperiment_result(
-       boolean success,
++    public launchExperiment_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.success = success;
-       setSuccessIsSet(true);
 +      this.ire = ire;
 +      this.enf = enf;
 +      this.ace = ace;
 +      this.ase = ase;
 +      this.ae = ae;
 +    }
 +
 +    /**
 +     * Performs a deep copy on <i>other</i>.
 +     */
-     public validateExperiment_result(validateExperiment_result other) {
-       __isset_bitfield = other.__isset_bitfield;
-       this.success = other.success;
++    public launchExperiment_result(launchExperiment_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 validateExperiment_result deepCopy() {
-       return new validateExperiment_result(this);
++    public launchExperiment_result deepCopy() {
++      return new launchExperiment_result(this);
 +    }
 +
 +    @Override
 +    public void clear() {
-       setSuccessIsSet(false);
-       this.success = false;
 +      this.ire = null;
 +      this.enf = null;
 +      this.ace = null;
 +      this.ase = null;
 +      this.ae = null;
 +    }
 +
-     public boolean isSuccess() {
-       return this.success;
-     }
- 
-     public validateExperiment_result setSuccess(boolean success) {
-       this.success = success;
-       setSuccessIsSet(true);
-       return this;
-     }
- 
-     public void unsetSuccess() {
-       __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 org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
-     }
- 
-     public void setSuccessIsSet(boolean value) {
-       __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 validateExperiment_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
++    public launchExperiment_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 validateExperiment_result setEnf(org.apache.airavata.model.error.ExperimentNotFoundException enf) {
++    public launchExperiment_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 validateExperiment_result setAce(org.apache.airavata.model.error.AiravataClientException ace) {
++    public launchExperiment_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 validateExperiment_result setAse(org.apache.airavata.model.error.AiravataSystemException ase) {
++    public launchExperiment_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 validateExperiment_result setAe(org.apache.airavata.model.error.AuthorizationException ae) {
++    public launchExperiment_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.Boolean)value);
-         }
-         break;
- 
 +      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 SUCCESS:
-         return isSuccess();
- 
 +      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 SUCCESS:
-         return isSetSuccess();
 +      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 validateExperiment_result)
-         return this.equals((validateExperiment_result)that);
++      if (that instanceof launchExperiment_result)
++        return this.equals((launchExperiment_result)that);
 +      return false;
 +    }
 +
-     public boolean equals(validateExperiment_result that) {
++    public boolean equals(launchExperiment_result that) {
 +      if (that == null)
 +        return false;
 +      if (this == that)
 +        return true;
 +
-       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 != 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;
 +      }
 +
 +      return true;
 +    }
 +
 +    @Override
 +    public int hashCode() {
 +      int hashCode = 1;
 +
-       hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
- 
 +      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(validateExperiment_result other) {
++    public int compareTo(launchExperiment_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;
 +        }
 +      }
 +      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("validateExperiment_result(");
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("launchExperiment_result(");
 +      boolean first = true;
 +
-       sb.append("success:");
-       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;
 +      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 {
-         // 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 validateExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public validateExperiment_resultStandardScheme getScheme() {
-         return new validateExperiment_resultStandardScheme();
++    private static class launchExperiment_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public launchExperiment_resultStandardScheme getScheme() {
++        return new launchExperiment_resultStandardScheme();
 +      }
 +    }
 +
-     private static class validateExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<validateExperiment_result> {
++    private static class launchExperiment_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_result> {
 +
-       public void read(org.apache.thrift.protocol.TProtocol iprot, validateExperiment_result struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_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.BOOL) {
-                 struct.success = iprot.readBool();
-                 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;
 +            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, validateExperiment_result struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol oprot, launchExperiment_result struct) throws org.apache.thrift.TException {
 +        struct.validate();
 +
 +        oprot.writeStructBegin(STRUCT_DESC);
-         if (struct.isSetSuccess()) {
-           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
-           oprot.writeBool(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();
 +        }
 +        oprot.writeFieldStop();
 +        oprot.writeStructEnd();
 +      }
 +
 +    }
 +
-     private static class validateExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public validateExperiment_resultTupleScheme getScheme() {
-         return new validateExperiment_resultTupleScheme();
++    private static class launchExperiment_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public launchExperiment_resultTupleScheme getScheme() {
++        return new launchExperiment_resultTupleScheme();
 +      }
 +    }
 +
-     private static class validateExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<validateExperiment_result> {
++    private static class launchExperiment_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_result> {
 +
 +      @Override
-       public void write(org.apache.thrift.protocol.TProtocol prot, validateExperiment_result struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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);
++          optionals.set(0);
 +        }
 +        if (struct.isSetEnf()) {
-           optionals.set(2);
++          optionals.set(1);
 +        }
 +        if (struct.isSetAce()) {
-           optionals.set(3);
++          optionals.set(2);
 +        }
 +        if (struct.isSetAse()) {
-           optionals.set(4);
++          optionals.set(3);
 +        }
 +        if (struct.isSetAe()) {
-           optionals.set(5);
-         }
-         oprot.writeBitSet(optionals, 6);
-         if (struct.isSetSuccess()) {
-           oprot.writeBool(struct.success);
++          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, validateExperiment_result struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_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(6);
++        java.util.BitSet incoming = iprot.readBitSet(5);
 +        if (incoming.get(0)) {
-           struct.success = iprot.readBool();
-           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)) {
++        if (incoming.get(1)) {
 +          struct.enf = new org.apache.airavata.model.error.ExperimentNotFoundException();
 +          struct.enf.read(iprot);
 +          struct.setEnfIsSet(true);
 +        }
-         if (incoming.get(3)) {
++        if (incoming.get(2)) {
 +          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);
 +        }
 +      }
 +    }
 +
 +    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 launchExperiment_args implements org.apache.thrift.TBase<launchExperiment_args, launchExperiment_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_args>   {
-     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_args");
++  public static class getExperimentStatus_args implements org.apache.thrift.TBase<getExperimentStatus_args, getExperimentStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_args>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_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 launchExperiment_argsStandardSchemeFactory();
-     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new launchExperiment_argsTupleSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getExperimentStatus_argsStandardSchemeFactory();
++    private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getExperimentStatus_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");
++      AIRAVATA_EXPERIMENT_ID((short)2, "airavataExperimentId");
 +
 +      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.REQUIRED, 
 +          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.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(launchExperiment_args.class, metaDataMap);
++      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getExperimentStatus_args.class, metaDataMap);
 +    }
 +
-     public launchExperiment_args() {
++    public getExperimentStatus_args() {
 +    }
 +
-     public launchExperiment_args(
++    public getExperimentStatus_args(
 +      org.apache.airavata.model.security.AuthzToken authzToken,
-       java.lang.String airavataExperimentId,
-       java.lang.String gatewayId)
++      java.lang.String airavataExperimentId)
 +    {
 +      this();
 +      this.authzToken = authzToken;
 +      this.airavataExperimentId = airavataExperimentId;
-       this.gatewayId = gatewayId;
 +    }
 +
 +    /**
 +     * Performs a deep copy on <i>other</i>.
 +     */
-     public launchExperiment_args(launchExperiment_args other) {
++    public getExperimentStatus_args(getExperimentStatus_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 launchExperiment_args deepCopy() {
-       return new launchExperiment_args(this);
++    public getExperimentStatus_args deepCopy() {
++      return new getExperimentStatus_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 launchExperiment_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
++    public getExperimentStatus_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 launchExperiment_args setAiravataExperimentId(java.lang.String airavataExperimentId) {
++    public getExperimentStatus_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 launchExperiment_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 launchExperiment_args)
-         return this.equals((launchExperiment_args)that);
++      if (that instanceof getExperimentStatus_args)
++        return this.equals((getExperimentStatus_args)that);
 +      return false;
 +    }
 +
-     public boolean equals(launchExperiment_args that) {
++    public boolean equals(getExperimentStatus_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(launchExperiment_args other) {
++    public int compareTo(getExperimentStatus_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("launchExperiment_args(");
++      java.lang.StringBuilder sb = new java.lang.StringBuilder("getExperimentStatus_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());
 +      }
 +      if (airavataExperimentId == null) {
 +        throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataExperimentId' 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();
 +      }
 +    }
 +
 +    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 launchExperiment_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public launchExperiment_argsStandardScheme getScheme() {
-         return new launchExperiment_argsStandardScheme();
++    private static class getExperimentStatus_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public getExperimentStatus_argsStandardScheme getScheme() {
++        return new getExperimentStatus_argsStandardScheme();
 +      }
 +    }
 +
-     private static class launchExperiment_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<launchExperiment_args> {
++    private static class getExperimentStatus_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme<getExperimentStatus_args> {
 +
-       public void read(org.apache.thrift.protocol.TProtocol iprot, launchExperiment_args struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol iprot, getExperimentStatus_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, launchExperiment_args struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol oprot, getExperimentStatus_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 launchExperiment_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-       public launchExperiment_argsTupleScheme getScheme() {
-         return new launchExperiment_argsTupleScheme();
++    private static class getExperimentStatus_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
++      public getExperimentStatus_argsTupleScheme getScheme() {
++        return new getExperimentStatus_argsTupleScheme();
 +      }
 +    }
 +
-     private static class launchExperiment_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<launchExperiment_args> {
++    private static class getExperimentStatus_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme<getExperimentStatus_args> {
 +
 +      @Override
-       public void write(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
++      public void write(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_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.airavataExperimentId);
-         oprot.writeString(struct.gatewayId);
 +      }
 +
 +      @Override
-       public void read(org.apache.thrift.protocol.TProtocol prot, launchExperiment_args struct) throws org.apache.thrift.TException {
++      public void read(org.apache.thrift.protocol.TProtocol prot, getExperimentStatus_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.airavataExperimentId = iprot.readString();
 +        struct.setAiravataExperimentIdIsSet(true);
-         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 launchExperiment_result implements org.apache.thrift.TBase<launchExperiment_result, launchExperiment_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchExperiment_result>   {
-     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchExperiment_result");
++  public static class getExperimentStatus_result implements org.apache.thrift.TBase<getExperimentStatus_result, getExperimentStatus_result._Fields>, java.io.Serializable, Cloneable, Comparable<getExperimentStatus_result>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getExperimentStatus_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);
... 106901 lines suppressed ...