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

[01/31] airavata git commit: Feature request: User Compute Preference

Repository: airavata
Updated Branches:
  refs/heads/develop 9f0445f81 -> 50cf71e44


http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
index b7ed6b0..9e70d1c 100644
--- a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
+++ b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-08-09")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
 public class RegistryServiceException extends TException implements org.apache.thrift.TBase<RegistryServiceException, RegistryServiceException._Fields>, java.io.Serializable, Cloneable, Comparable<RegistryServiceException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("RegistryServiceException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index a9b36d6..1f37cd9 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -38,6 +38,7 @@ include "../data-models/app-catalog-models/application_interface_model.thrift"
 include "../data-models/resource-catalog-models/compute_resource_model.thrift"
 include "../data-models/resource-catalog-models/storage_resource_model.thrift"
 include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift"
+include "../data-models/resource-catalog-models/user_resource_profile_model.thrift"
 include "../data-models/resource-catalog-models/data_movement_models.thrift"
 include "../data-models/workflow-models/workflow_data_model.thrift"
 include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
@@ -2775,20 +2776,333 @@ service Airavata {
               3: airavata_errors.AiravataSystemException ase,
               4: airavata_errors.AuthorizationException ae)
 
-  /**
-   * Delete the Storage Resource Preference of a registered gateway profile.
-   *
-   * @param gatewayID
-   *   The identifier of the gateway profile to be deleted.
-   *
-   * @param storageId
-   *   ID of the storage preference you want to delete.
-   *
-   * @return status
-   *   Returns a success/failure of the deletion.
+
+
+
+  /*
+   * User Resource Profile
    *
   */
 
+    /**
+     * Register User Resource Profile.
+     *
+     * @param UserResourceProfile
+     *    User Resource Profile Object.
+     *    The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+     *      resource profile.
+     *
+     * @return status
+     *   Returns a success/failure of the update.
+     *
+    */
+    string registerUserResourceProfile(1: required security_model.AuthzToken authzToken,
+                      2: required user_resource_profile_model.UserResourceProfile userResourceProfile)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Fetch the given User Resource Profile.
+     *
+     * @param userId
+     *   The identifier for the requested user resource profile.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @return UserResourceProfile
+     *    User Resource Profile Object.
+     *
+    */
+
+    user_resource_profile_model.UserResourceProfile getUserResourceProfile(1: required security_model.AuthzToken authzToken,
+                  2: required string userId, 3: required string gatewayID)
+        	throws (1: airavata_errors.InvalidRequestException ire,
+                  2: airavata_errors.AiravataClientException ace,
+                  3: airavata_errors.AiravataSystemException ase,
+                  4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Update a User Resource Profile.
+     *
+     * @param userId
+     *   The identifier for the requested user resource to be updated.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param UserResourceProfile
+     *    User Resource Profile Object.
+     *
+     * @return status
+     *   Returns a success/failure of the update.
+     *
+    */
+
+    bool updateUserResourceProfile(1: required security_model.AuthzToken authzToken, 2: required string userId,
+              3: required string gatewayID, 4: required user_resource_profile_model.UserResourceProfile userResourceProfile)
+        	throws (1: airavata_errors.InvalidRequestException ire,
+                  2: airavata_errors.AiravataClientException ace,
+                  3: airavata_errors.AiravataSystemException ase,
+                  4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Delete the given User Resource Profile.
+     *
+     * @param userId
+     *   The identifier for the requested user resource to be deleted.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @return status
+     *   Returns a success/failure of the deletion.
+     *
+    */
+
+    bool deleteUserResourceProfile(1: required security_model.AuthzToken authzToken, 2: required string userId,
+                3: required string gatewayID)
+           	throws (1: airavata_errors.InvalidRequestException ire,
+                     2: airavata_errors.AiravataClientException ace,
+                     3: airavata_errors.AiravataSystemException ase,
+                     4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Add a Compute Resource Preference to a registered User profile.
+     *
+     * @param userId
+     *   The identifier for the User resource profile to be added.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     *
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     *
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     *
+    */
+    bool addUserComputeResourcePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+              3: required string gatewayID, 4: required string userComputeResourceId,
+              5: required user_resource_profile_model.UserComputeResourcePreference userComputeResourcePreference)
+    	throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.AiravataClientException ace,
+              3: airavata_errors.AiravataSystemException ase,
+              4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Add a Storage Resource Preference to a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier of the user resource profile to be added.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param storageResourceId
+     *   Preferences related to a particular compute resource
+     *
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     *
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     *
+    */
+    bool addUserStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+                3: required string gatewayID,
+                4: required string userStorageResourceId,
+                5: required user_resource_profile_model.UserStoragePreference userStoragePreference)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+    /**
+     *
+     * Fetch a Compute Resource Preference of a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier for the user profile to be requested
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     *
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     *
+    */
+    user_resource_profile_model.UserComputeResourcePreference getUserComputeResourcePreference(1: required security_model.AuthzToken authzToken,
+              2: required string userId,
+              3: required string gatewayID,
+              4: required string userComputeResourceId)
+    	throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.AiravataClientException ace,
+              3: airavata_errors.AiravataSystemException ase,
+              4: airavata_errors.AuthorizationException ae)
+
+    /**
+     *
+     * Fetch a Storage Resource Preference of a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param userStorageResourceId
+     *   Identifier of the Stprage Preference required to be fetched.
+     *
+     * @return UserStoragePreference
+     *   Returns the StoragePreference object.
+     *
+    */
+    user_resource_profile_model.UserStoragePreference getUserStoragePreference(1: required security_model.AuthzToken authzToken,
+                2: required string userId,
+                3: required string gatewayID,
+                4: required string userStorageResourceId)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+
+    /**
+    *
+    * Fetch all user resources Profiles registered
+    *
+    * @return UserResourceProfile
+    *   Returns all the UserResourcePrifle list object.
+    *
+    **/
+    list<user_resource_profile_model.UserResourceProfile>
+                getAllUserResourceProfiles(1: required security_model.AuthzToken authzToken)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Update a Compute Resource Preference to a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier for the user profile to be updated.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     *
+     * @param userComputeResourcePreference
+     *   The ComputeResourcePreference object to be updated to the resource profile.
+     *
+     * @return status
+     *   Returns a success/failure of the updation.
+     *
+    */
+    bool updateUserComputeResourcePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+              3: required string gatewayID,
+              4: required string userComputeResourceId,
+              5: required user_resource_profile_model.UserComputeResourcePreference userComputeResourcePreference)
+    	throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.AiravataClientException ace,
+              3: airavata_errors.AiravataSystemException ase,
+              4: airavata_errors.AuthorizationException ae)
+
+      /**
+       * Update a Storage Resource Preference of a registered user resource profile.
+       *
+       * @param userId
+       *   The identifier of the user resource profile to be updated.
+       *
+       * @param gatewayID
+       *   The identifier to link a gateway for the requested user resource profile.
+       *
+       * @param userStorageId
+       *   The Storage resource identifier of the one that you want to update
+       *
+       * @param userStoragePreference
+       *   The storagePreference object to be updated to the resource profile.
+       *
+       * @return status
+       *   Returns a success/failure of the updation.
+       *
+      */
+
+    bool updateUserStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+                3: required string gatewayID,
+                4: required string userStorageId,
+                5: required user_resource_profile_model.UserStoragePreference userStoragePreference)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+    /**
+     * Delete the Compute Resource Preference of a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier for the user resource profile to be deleted.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     *
+     * @return status
+     *   Returns a success/failure of the deletion.
+     *
+    */
+    bool deleteUserComputeResourcePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+              3: required string gatewayID,
+              4: required string userComputeResourceId)
+    	throws (1: airavata_errors.InvalidRequestException ire,
+              2: airavata_errors.AiravataClientException ace,
+              3: airavata_errors.AiravataSystemException ase,
+              4: airavata_errors.AuthorizationException ae)
+
+
+    /**
+     * Delete the Storage Resource Preference of a registered user resource profile.
+     *
+     * @param userId
+     *   The identifier of the user profile to be deleted.
+     *
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     *
+     * @param userStorageId
+     *   ID of the storage preference you want to delete.
+     *
+     * @return status
+     *   Returns a success/failure of the deletion.
+     *
+    */
+
+    bool deleteUserStoragePreference(1: required security_model.AuthzToken authzToken, 2: required string userId,
+                3: required string gatewayID,
+                4: required string userStorageId)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+
+
+
   list<string> getAllWorkflows(1: required security_model.AuthzToken authzToken, 2: required string gatewayId)
           throws (1: airavata_errors.InvalidRequestException ire,
                   2: airavata_errors.AiravataClientException ace,

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/thrift-interface-descriptions/component-cpis/registry-api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/component-cpis/registry-api.thrift b/thrift-interface-descriptions/component-cpis/registry-api.thrift
index 10a16a3..8fc9445 100644
--- a/thrift-interface-descriptions/component-cpis/registry-api.thrift
+++ b/thrift-interface-descriptions/component-cpis/registry-api.thrift
@@ -35,6 +35,7 @@ include "../data-models/app-catalog-models/application_interface_model.thrift"
 include "../data-models/resource-catalog-models/compute_resource_model.thrift"
 include "../data-models/resource-catalog-models/storage_resource_model.thrift"
 include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift"
+include "../data-models/resource-catalog-models/user_resource_profile_model.thrift"
 include "../data-models/resource-catalog-models/data_movement_models.thrift"
 include "../data-models/workflow-models/workflow_data_model.thrift"
 include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
@@ -2023,6 +2024,287 @@ service RegistryService {
                 *
                */
 
+
+               /*
+               * User Resource Profile
+               *
+               */
+
+               /**
+                * Register a User Resource Profile.
+                *
+                * @param userResourceProfile
+                *    User Resource Profile Object.
+                *    The userId should be obtained from Airavata user profile and passed to register a corresponding
+                *      resource profile.
+                *
+                * @return status
+                *   Returns a success/failure of the update.
+                *
+               */
+               string registerUserResourceProfile(1: required user_resource_profile_model.UserResourceProfile userResourceProfile)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Fetch the given User Resource Resource Profile.
+                *
+                * @param userId
+                *   The identifier for the requested User Resource resource.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @return userResourceProfile
+                *    User Resource Profile Object.
+                *
+               */
+
+               user_resource_profile_model.UserResourceProfile getUserResourceProfile(1: required string userId, 2: required string gatewayID)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Update a User Resource Profile.
+                *
+                * @param userId
+                *   The identifier for the requested user resource to be updated.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userResourceProfile
+                *    User Resource Profile Object.
+                *
+                * @return status
+                *   Returns a success/failure of the update.
+                *
+               */
+
+               bool updateUserResourceProfile(1: required string userId, 2: required string gatewayID,
+                         3: required user_resource_profile_model.UserResourceProfile userResourceProfile)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Delete the given User Resource Profile.
+                *
+                * @param userId
+                *   The identifier for the requested user resource to be deleted.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @return status
+                *   Returns a success/failure of the deletion.
+                *
+               */
+
+               bool deleteUserResourceProfile(1: required string userId, 2: required string gatewayID)
+                         throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Add a Compute Resource Preference to a registered user resource profile.
+                *
+                * @param userId
+                *   The identifier for the user resource profile to be added.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param computeResourceId
+                *   Preferences related to a particular compute resource
+                *
+                * @param computeResourcePreference
+                *   The ComputeResourcePreference object to be added to the resource profile.
+                *
+                * @return status
+                *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+                *    Instead an update should be used.
+                *
+               */
+               bool addUserComputeResourcePreference(1: required string userId,
+                         2: required string gatewayID,
+                         3: required string computeResourceId,
+                         4: required user_resource_profile_model.UserComputeResourcePreference userComputeResourcePreference)
+                 throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Add a Storage Resource Preference to a registered user profile.
+                *
+                * @param userId
+                *   The identifier of the userId profile to be added.
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userStorageResourceId
+                *   Preferences related to a particular compute resource
+                *
+                * @param userStoragePreference
+                *   The ComputeResourcePreference object to be added to the resource profile.
+                *
+                * @return status
+                *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+                *    Instead an update should be used.
+                *
+               */
+               bool addUserStoragePreference(1: required string userId,
+                           2: required string gatewayID,
+                           3: required string userStorageResourceId,
+                           4: required user_resource_profile_model.UserStoragePreference userStoragePreference)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+               /**
+                *
+                * Fetch a Compute Resource Preference of a registered user resource profile.
+                *
+                * @param userId
+                *   The identifier for the user resource profile to be requested
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userComputeResourceId
+                *   Preferences related to a particular compute resource
+                *
+                * @return userComputeResourcePreference
+                *   Returns the ComputeResourcePreference object.
+                *
+               */
+               user_resource_profile_model.UserComputeResourcePreference getUserComputeResourcePreference(1: required string userId,
+                         2: required string gatewayID,
+                         3: required string userComputeResourceId)
+                 throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                *
+                * Fetch a Storage Resource Preference of a registered user profile.
+                *
+                * @param userId
+                *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userStorageResourceId
+                *   Identifier of the Stprage Preference required to be fetched.
+                *
+                * @return UserStoragePreference
+                *   Returns the StoragePreference object.
+                *
+               */
+               user_resource_profile_model.UserStoragePreference getUserStoragePreference(1: required string userId,
+                           2: required string gatewayID,
+                           3: required string userStorageResourceId)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+
+               /**
+               *
+               * Fetch all user resource Profiles registered
+               *
+               * @return userResourceProfile
+               *   Returns all the UserResourcePrifle list object.
+               *
+               **/
+               list<user_resource_profile_model.UserResourceProfile>
+                           getAllUserResourceProfiles()
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Update a Compute Resource Preference to a registered user resource profile.
+                *
+                * @param userId
+                *   The identifier for the user resource profile to be updated.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userComputeResourceId
+                *   Preferences related to a particular compute resource
+                *
+                * @param userComputeResourcePreference
+                *   The ComputeResourcePreference object to be updated to the resource profile.
+                *
+                * @return status
+                *   Returns a success/failure of the updation.
+                *
+               */
+               bool updateUserComputeResourcePreference(1: required string userId,
+                         2: required string gatewayID,
+                         3: required string userComputeResourceId,
+                         4: required user_resource_profile_model.UserComputeResourcePreference userComputeResourcePreference)
+                 throws (1: registry_api_errors.RegistryServiceException rse)
+
+                 /**
+                  * Update a Storage Resource Preference of a registered user profile.
+                  *
+                  * @param userId
+                  *   The identifier of the user resource profile to be updated.
+                  *
+                  * @param gatewayID
+                  *   The identifier to link gateway for the requested User Resource resource.
+                  *
+                  * @param userStorageId
+                  *   The Storage resource identifier of the one that you want to update
+                  *
+                  * @param userStoragePreference
+                  *   The storagePreference object to be updated to the resource profile.
+                  *
+                  * @return status
+                  *   Returns a success/failure of the updation.
+                  *
+                 */
+
+               bool updateUserStoragePreference(1: required string userId,
+                           2: required string gatewayID,
+                           3: required string userStorageId,
+                           4: required user_resource_profile_model.UserStoragePreference userStoragePreference)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+               /**
+                * Delete the Compute Resource Preference of a registered user resource profile.
+                *
+                * @param userId
+                *   The identifier for the user resource profile to be deleted.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userComputeResourceId
+                *   Preferences related to a particular compute resource
+                *
+                * @return status
+                *   Returns a success/failure of the deletion.
+                *
+               */
+               bool deleteUserComputeResourcePreference(1: required string userId,
+                         2: required string gatewayID,
+                         3: required string userComputeResourceId)
+                 throws (1: registry_api_errors.RegistryServiceException rse)
+
+
+               /**
+                * Delete the Storage Resource Preference of a registered user resource profile.
+                *
+                * @param userId
+                *   The identifier of the user resource profile to be deleted.
+                *
+                * @param gatewayID
+                *   The identifier to link gateway for the requested User Resource resource.
+                *
+                * @param userStorageId
+                *   ID of the storage preference you want to delete.
+                *
+                * @return status
+                *   Returns a success/failure of the deletion.
+                *
+               */
+
+               bool deleteUserStoragePreference(1: required string userId,
+                           2: required string gatewayID,
+                           3: required string userStorageId)
+                     throws (1: registry_api_errors.RegistryServiceException rse)
+
+
+
+
                list<string> getAllWorkflows(1: required string gatewayId)
                        throws (1: registry_api_errors.RegistryServiceException rse)
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/thrift-interface-descriptions/data-models/resource-catalog-models/resource_catalog_models.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/resource_catalog_models.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/resource_catalog_models.thrift
index 8f67576..da4a340 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/resource_catalog_models.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/resource_catalog_models.thrift
@@ -20,4 +20,5 @@
 
 include "compute_resource_model.thrift"
 include "storage_resource_model.thrift"
-include "gateway_resource_profile_model.thrift"
\ No newline at end of file
+include "gateway_resource_profile_model.thrift"
+include "user_resource_profile_model.thrift"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
new file mode 100644
index 0000000..57053cb
--- /dev/null
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/user_resource_profile_model.thrift
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+namespace java org.apache.airavata.model.appcatalog.userresourceprofile
+namespace php Airavata.Model.AppCatalog.UserResourceProfile
+namespace cpp apache.airavata.model.appcatalog.userresourceprofile
+namespace py apache.airavata.model.appcatalog.userresourceprofile
+
+include "compute_resource_model.thrift"
+include "data_movement_models.thrift"
+include "../user-group-models/user_profile_model.thrift"
+
+/**
+ * User specific preferences for a Computer Resource
+ *
+ * computeResourceId:
+ *   Corelate the preference to a compute resource.
+ *
+ *
+ * loginUserName:
+ *   If turned true, Airavata will override the preferences of better alternatives exist.
+ *
+ *
+ * preferredBatchQueue:
+ *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+ *
+ * scratchLocation:
+ *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+ *
+ * allocationProjectNumber:
+ *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ *    account to be used has to be added to the allocation.
+ *
+ * resourceSpecificCredentialStoreToken:
+ *  Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+ *   default credential store.
+ *
+*/
+struct UserComputeResourcePreference {
+    1: required string computeResourceId,
+    2: optional string loginUserName,
+    3: optional string preferredBatchQueue,
+    4: optional string scratchLocation,
+    5: optional string allocationProjectNumber,
+    6: optional string resourceSpecificCredentialStoreToken,
+    7: optional string qualityOfService,
+    8: optional string reservation,
+    9: optional i64 reservationStartTime,
+    10: optional i64 reservationEndTime
+}
+
+struct UserStoragePreference {
+    1: required string storageResourceId,
+    2: optional string loginUserName,
+    3: optional string fileSystemRootLocation,
+    4: optional string resourceSpecificCredentialStoreToken
+}
+
+/**
+ * User Resource Profile
+ *
+ * userId:
+ * Unique identifier used to link user to corresponding user data model
+ *
+ * gatewayID:
+ *  Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+ *
+ * credentialStoreToken:
+ *  Gateway's defualt credential store token.
+ *
+ * computeResourcePreferences:
+ *  List of resource preferences for each of the registered compute resources.
+ *
+ *  identityServerTenant:
+ *
+ *  identityServerPwdCredToken:
+ *
+*/
+struct UserResourceProfile {
+    1: required string userId,
+    2: required string gatewayID,
+    3: optional string credentialStoreToken,
+    4: optional list<UserComputeResourcePreference> userComputeResourcePreferences,
+    5: optional list<UserStoragePreference> userStoragePreferences,
+    6: optional string identityServerTenant,
+    7: optional string identityServerPwdCredToken
+}
\ No newline at end of file


[15/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index a73c656..9c0c662 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -3229,10 +3229,330 @@ interface AiravataIf {
    */
   public function deleteGatewayStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayID, $storageId);
   /**
-   * Delete the Storage Resource Preference of a registered gateway profile.
+   * Register User Resource Profile.
    * 
-   * @param gatewayID
-   *   The identifier of the gateway profile to be deleted.
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   *    The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+   *      resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile
+   * @return string
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function registerUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile);
+  /**
+   * Fetch the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource profile.
+   * 
+   * @return UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @return \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile Gateway Resource Profile
+   * 
+   * gatewayID:
+   *  Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+   * 
+   * credentialStoreToken:
+   *  Gateway's defualt credential store token.
+   * 
+   * computeResourcePreferences:
+   *  List of resource preferences for each of the registered compute resources.
+   * 
+   *  identityServerTenant:
+   * 
+   *  identityServerPwdCredToken:
+   * 
+   * 
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId);
+  /**
+   * Update a User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be updated.
+   * 
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function updateUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile);
+  /**
+   * Delete the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be deleted.
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function deleteUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId);
+  /**
+   * Add a Compute Resource Preference to a registered User profile.
+   * 
+   * @param userId
+   *   The identifier for the User resource profile to be added.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $computeResourceId
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function addUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference);
+  /**
+   * Add a Storage Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be added.
+   * 
+   * @param storageResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $storageResourceId
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function addUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference);
+  /**
+   * 
+   * Fetch a Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be requested
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return computeResourcePreference
+   *   Returns the ComputeResourcePreference object.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $computeResourceId
+   * @return \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference Gateway specific preferences for a Computer Resource
+   * 
+   * computeResourceId:
+   *   Corelate the preference to a compute resource.
+   * 
+   * 
+   * loginUserName:
+   *   If turned true, Airavata will override the preferences of better alternatives exist.
+   * 
+   * 
+   * preferredBatchQueue:
+   *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+   * 
+   * scratchLocation:
+   *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+   * 
+   * allocationProjectNumber:
+   *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+   *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+   *    account to be used has to be added to the allocation.
+   * 
+   * resourceSpecificCredentialStoreToken:
+   *  Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+   *   default credential store.
+   * 
+   * 
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId);
+  /**
+   * 
+   * Fetch a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+   * 
+   * @param storageResourceId
+   *   Identifier of the Stprage Preference required to be fetched.
+   * 
+   * @return StoragePreference
+   *   Returns the StoragePreference object.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $storageResourceId
+   * @return \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId);
+  /**
+   * 
+   * Fetch all user resources Profiles registered
+   * 
+   * @return UserResourceProfile
+   *   Returns all the UserResourcePrifle list object.
+   * 
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @return \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile[]
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function getAllUserResourceProfiles(\Airavata\Model\Security\AuthzToken $authzToken);
+  /**
+   * Update a Compute Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be updated.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $computeResourceId
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function updateUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference);
+  /**
+   * Update a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be updated.
+   * 
+   * @param storageId
+   *   The Storage resource identifier of the one that you want to update
+   * 
+   * @param storagePreference
+   *   The storagePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $storageId
+   * @param \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function updateUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference);
+  /**
+   * Delete the Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user resource profile to be deleted.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $computeResourceId
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function deleteUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId);
+  /**
+   * Delete the Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user profile to be deleted.
    * 
    * @param storageId
    *   ID of the storage preference you want to delete.
@@ -3242,6 +3562,17 @@ interface AiravataIf {
    * 
    * 
    * @param \Airavata\Model\Security\AuthzToken $authzToken
+   * @param string $userId
+   * @param string $storageId
+   * @return bool
+   * @throws \Airavata\API\Error\InvalidRequestException
+   * @throws \Airavata\API\Error\AiravataClientException
+   * @throws \Airavata\API\Error\AiravataSystemException
+   * @throws \Airavata\API\Error\AuthorizationException
+   */
+  public function deleteUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId);
+  /**
+   * @param \Airavata\Model\Security\AuthzToken $authzToken
    * @param string $gatewayId
    * @return string[]
    * @throws \Airavata\API\Error\InvalidRequestException
@@ -11813,35 +12144,35 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     throw new \Exception("deleteGatewayStoragePreference failed: unknown result");
   }
 
-  public function getAllWorkflows(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
+  public function registerUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile)
   {
-    $this->send_getAllWorkflows($authzToken, $gatewayId);
-    return $this->recv_getAllWorkflows();
+    $this->send_registerUserResourceProfile($authzToken, $userResourceProfile);
+    return $this->recv_registerUserResourceProfile();
   }
 
-  public function send_getAllWorkflows(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
+  public function send_registerUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile)
   {
-    $args = new \Airavata\API\Airavata_getAllWorkflows_args();
+    $args = new \Airavata\API\Airavata_registerUserResourceProfile_args();
     $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
+    $args->userResourceProfile = $userResourceProfile;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllWorkflows', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'registerUserResourceProfile', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllWorkflows', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('registerUserResourceProfile', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllWorkflows()
+  public function recv_registerUserResourceProfile()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllWorkflows_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerUserResourceProfile_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -11855,7 +12186,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllWorkflows_result();
+      $result = new \Airavata\API\Airavata_registerUserResourceProfile_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -11874,38 +12205,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getAllWorkflows failed: unknown result");
+    throw new \Exception("registerUserResourceProfile failed: unknown result");
   }
 
-  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function getUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId)
   {
-    $this->send_getWorkflow($authzToken, $workflowTemplateId);
-    return $this->recv_getWorkflow();
+    $this->send_getUserResourceProfile($authzToken, $userId);
+    return $this->recv_getUserResourceProfile();
   }
 
-  public function send_getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function send_getUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId)
   {
-    $args = new \Airavata\API\Airavata_getWorkflow_args();
+    $args = new \Airavata\API\Airavata_getUserResourceProfile_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
+    $args->userId = $userId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getUserResourceProfile', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getWorkflow', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getUserResourceProfile', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getWorkflow()
+  public function recv_getUserResourceProfile()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflow_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getUserResourceProfile_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -11919,7 +12250,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getWorkflow_result();
+      $result = new \Airavata\API\Airavata_getUserResourceProfile_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -11938,38 +12269,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getWorkflow failed: unknown result");
+    throw new \Exception("getUserResourceProfile failed: unknown result");
   }
 
-  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function updateUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile)
   {
-    $this->send_deleteWorkflow($authzToken, $workflowTemplateId);
-    $this->recv_deleteWorkflow();
+    $this->send_updateUserResourceProfile($authzToken, $userId, $userResourceProfile);
+    return $this->recv_updateUserResourceProfile();
   }
 
-  public function send_deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
+  public function send_updateUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId, \Airavata\Model\AppCatalog\UserResourceProfile\UserResourceProfile $userResourceProfile)
   {
-    $args = new \Airavata\API\Airavata_deleteWorkflow_args();
+    $args = new \Airavata\API\Airavata_updateUserResourceProfile_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
+    $args->userId = $userId;
+    $args->userResourceProfile = $userResourceProfile;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'deleteWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateUserResourceProfile', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('deleteWorkflow', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateUserResourceProfile', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_deleteWorkflow()
+  public function recv_updateUserResourceProfile()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteWorkflow_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateUserResourceProfile_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -11983,10 +12315,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_deleteWorkflow_result();
+      $result = new \Airavata\API\Airavata_updateUserResourceProfile_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -11999,39 +12334,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    return;
+    throw new \Exception("updateUserResourceProfile failed: unknown result");
   }
 
-  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
+  public function deleteUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId)
   {
-    $this->send_registerWorkflow($authzToken, $gatewayId, $workflow);
-    return $this->recv_registerWorkflow();
+    $this->send_deleteUserResourceProfile($authzToken, $userId);
+    return $this->recv_deleteUserResourceProfile();
   }
 
-  public function send_registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
+  public function send_deleteUserResourceProfile(\Airavata\Model\Security\AuthzToken $authzToken, $userId)
   {
-    $args = new \Airavata\API\Airavata_registerWorkflow_args();
+    $args = new \Airavata\API\Airavata_deleteUserResourceProfile_args();
     $args->authzToken = $authzToken;
-    $args->gatewayId = $gatewayId;
-    $args->workflow = $workflow;
+    $args->userId = $userId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'registerWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'deleteUserResourceProfile', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('registerWorkflow', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('deleteUserResourceProfile', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_registerWorkflow()
+  public function recv_deleteUserResourceProfile()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerWorkflow_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteUserResourceProfile_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12045,7 +12379,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_registerWorkflow_result();
+      $result = new \Airavata\API\Airavata_deleteUserResourceProfile_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12064,39 +12398,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("registerWorkflow failed: unknown result");
+    throw new \Exception("deleteUserResourceProfile failed: unknown result");
   }
 
-  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
+  public function addUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference)
   {
-    $this->send_updateWorkflow($authzToken, $workflowTemplateId, $workflow);
-    $this->recv_updateWorkflow();
+    $this->send_addUserComputeResourcePreference($authzToken, $userId, $computeResourceId, $computeResourcePreference);
+    return $this->recv_addUserComputeResourcePreference();
   }
 
-  public function send_updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
+  public function send_addUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference)
   {
-    $args = new \Airavata\API\Airavata_updateWorkflow_args();
+    $args = new \Airavata\API\Airavata_addUserComputeResourcePreference_args();
     $args->authzToken = $authzToken;
-    $args->workflowTemplateId = $workflowTemplateId;
-    $args->workflow = $workflow;
+    $args->userId = $userId;
+    $args->computeResourceId = $computeResourceId;
+    $args->computeResourcePreference = $computeResourcePreference;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'addUserComputeResourcePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateWorkflow', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('addUserComputeResourcePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateWorkflow()
+  public function recv_addUserComputeResourcePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateWorkflow_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_addUserComputeResourcePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12110,10 +12445,13 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateWorkflow_result();
+      $result = new \Airavata\API\Airavata_addUserComputeResourcePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
+    if ($result->success !== null) {
+      return $result->success;
+    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -12126,38 +12464,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    return;
+    throw new \Exception("addUserComputeResourcePreference failed: unknown result");
   }
 
-  public function getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function addUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference)
   {
-    $this->send_getWorkflowTemplateId($authzToken, $workflowName);
-    return $this->recv_getWorkflowTemplateId();
+    $this->send_addUserStoragePreference($authzToken, $userId, $storageResourceId, $storagePreference);
+    return $this->recv_addUserStoragePreference();
   }
 
-  public function send_getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function send_addUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference)
   {
-    $args = new \Airavata\API\Airavata_getWorkflowTemplateId_args();
+    $args = new \Airavata\API\Airavata_addUserStoragePreference_args();
     $args->authzToken = $authzToken;
-    $args->workflowName = $workflowName;
+    $args->userId = $userId;
+    $args->storageResourceId = $storageResourceId;
+    $args->storagePreference = $storagePreference;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getWorkflowTemplateId', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'addUserStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getWorkflowTemplateId', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('addUserStoragePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getWorkflowTemplateId()
+  public function recv_addUserStoragePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflowTemplateId_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_addUserStoragePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12171,7 +12511,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getWorkflowTemplateId_result();
+      $result = new \Airavata\API\Airavata_addUserStoragePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12190,38 +12530,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getWorkflowTemplateId failed: unknown result");
+    throw new \Exception("addUserStoragePreference failed: unknown result");
   }
 
-  public function isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function getUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId)
   {
-    $this->send_isWorkflowExistWithName($authzToken, $workflowName);
-    return $this->recv_isWorkflowExistWithName();
+    $this->send_getUserComputeResourcePreference($authzToken, $userId, $computeResourceId);
+    return $this->recv_getUserComputeResourcePreference();
   }
 
-  public function send_isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
+  public function send_getUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId)
   {
-    $args = new \Airavata\API\Airavata_isWorkflowExistWithName_args();
+    $args = new \Airavata\API\Airavata_getUserComputeResourcePreference_args();
     $args->authzToken = $authzToken;
-    $args->workflowName = $workflowName;
+    $args->userId = $userId;
+    $args->computeResourceId = $computeResourceId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'isWorkflowExistWithName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getUserComputeResourcePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('isWorkflowExistWithName', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getUserComputeResourcePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_isWorkflowExistWithName()
+  public function recv_getUserComputeResourcePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_isWorkflowExistWithName_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getUserComputeResourcePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12235,7 +12576,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_isWorkflowExistWithName_result();
+      $result = new \Airavata\API\Airavata_getUserComputeResourcePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12254,38 +12595,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("isWorkflowExistWithName failed: unknown result");
+    throw new \Exception("getUserComputeResourcePreference failed: unknown result");
   }
 
-  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
+  public function getUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId)
   {
-    $this->send_registerDataProduct($authzToken, $dataProductModel);
-    return $this->recv_registerDataProduct();
+    $this->send_getUserStoragePreference($authzToken, $userId, $storageResourceId);
+    return $this->recv_getUserStoragePreference();
   }
 
-  public function send_registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
+  public function send_getUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageResourceId)
   {
-    $args = new \Airavata\API\Airavata_registerDataProduct_args();
+    $args = new \Airavata\API\Airavata_getUserStoragePreference_args();
     $args->authzToken = $authzToken;
-    $args->dataProductModel = $dataProductModel;
+    $args->userId = $userId;
+    $args->storageResourceId = $storageResourceId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'registerDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getUserStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('registerDataProduct', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getUserStoragePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_registerDataProduct()
+  public function recv_getUserStoragePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerDataProduct_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getUserStoragePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12299,7 +12641,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_registerDataProduct_result();
+      $result = new \Airavata\API\Airavata_getUserStoragePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12318,38 +12660,37 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("registerDataProduct failed: unknown result");
+    throw new \Exception("getUserStoragePreference failed: unknown result");
   }
 
-  public function getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
+  public function getAllUserResourceProfiles(\Airavata\Model\Security\AuthzToken $authzToken)
   {
-    $this->send_getDataProduct($authzToken, $dataProductUri);
-    return $this->recv_getDataProduct();
+    $this->send_getAllUserResourceProfiles($authzToken);
+    return $this->recv_getAllUserResourceProfiles();
   }
 
-  public function send_getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
+  public function send_getAllUserResourceProfiles(\Airavata\Model\Security\AuthzToken $authzToken)
   {
-    $args = new \Airavata\API\Airavata_getDataProduct_args();
+    $args = new \Airavata\API\Airavata_getAllUserResourceProfiles_args();
     $args->authzToken = $authzToken;
-    $args->dataProductUri = $dataProductUri;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllUserResourceProfiles', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getDataProduct', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllUserResourceProfiles', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getDataProduct()
+  public function recv_getAllUserResourceProfiles()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getDataProduct_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllUserResourceProfiles_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12363,7 +12704,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getDataProduct_result();
+      $result = new \Airavata\API\Airavata_getAllUserResourceProfiles_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12382,38 +12723,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getDataProduct failed: unknown result");
+    throw new \Exception("getAllUserResourceProfiles failed: unknown result");
   }
 
-  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
+  public function updateUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference)
   {
-    $this->send_registerReplicaLocation($authzToken, $replicaLocationModel);
-    return $this->recv_registerReplicaLocation();
+    $this->send_updateUserComputeResourcePreference($authzToken, $userId, $computeResourceId, $computeResourcePreference);
+    return $this->recv_updateUserComputeResourcePreference();
   }
 
-  public function send_registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
+  public function send_updateUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId, \Airavata\Model\AppCatalog\UserResourceProfile\ComputeResourcePreference $computeResourcePreference)
   {
-    $args = new \Airavata\API\Airavata_registerReplicaLocation_args();
+    $args = new \Airavata\API\Airavata_updateUserComputeResourcePreference_args();
     $args->authzToken = $authzToken;
-    $args->replicaLocationModel = $replicaLocationModel;
+    $args->userId = $userId;
+    $args->computeResourceId = $computeResourceId;
+    $args->computeResourcePreference = $computeResourcePreference;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'registerReplicaLocation', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateUserComputeResourcePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('registerReplicaLocation', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateUserComputeResourcePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_registerReplicaLocation()
+  public function recv_updateUserComputeResourcePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerReplicaLocation_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateUserComputeResourcePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12427,7 +12770,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_registerReplicaLocation_result();
+      $result = new \Airavata\API\Airavata_updateUserComputeResourcePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12446,38 +12789,40 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("registerReplicaLocation failed: unknown result");
+    throw new \Exception("updateUserComputeResourcePreference failed: unknown result");
   }
 
-  public function getParentDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
+  public function updateUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference)
   {
-    $this->send_getParentDataProduct($authzToken, $productUri);
-    return $this->recv_getParentDataProduct();
+    $this->send_updateUserStoragePreference($authzToken, $userId, $storageId, $storagePreference);
+    return $this->recv_updateUserStoragePreference();
   }
 
-  public function send_getParentDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
+  public function send_updateUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId, \Airavata\Model\AppCatalog\UserResourceProfile\StoragePreference $storagePreference)
   {
-    $args = new \Airavata\API\Airavata_getParentDataProduct_args();
+    $args = new \Airavata\API\Airavata_updateUserStoragePreference_args();
     $args->authzToken = $authzToken;
-    $args->productUri = $productUri;
+    $args->userId = $userId;
+    $args->storageId = $storageId;
+    $args->storagePreference = $storagePreference;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getParentDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateUserStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getParentDataProduct', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateUserStoragePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getParentDataProduct()
+  public function recv_updateUserStoragePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getParentDataProduct_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateUserStoragePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12491,7 +12836,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getParentDataProduct_result();
+      $result = new \Airavata\API\Airavata_updateUserStoragePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12510,38 +12855,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getParentDataProduct failed: unknown result");
+    throw new \Exception("updateUserStoragePreference failed: unknown result");
   }
 
-  public function getChildDataProducts(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
+  public function deleteUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId)
   {
-    $this->send_getChildDataProducts($authzToken, $productUri);
-    return $this->recv_getChildDataProducts();
+    $this->send_deleteUserComputeResourcePreference($authzToken, $userId, $computeResourceId);
+    return $this->recv_deleteUserComputeResourcePreference();
   }
 
-  public function send_getChildDataProducts(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
+  public function send_deleteUserComputeResourcePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $computeResourceId)
   {
-    $args = new \Airavata\API\Airavata_getChildDataProducts_args();
+    $args = new \Airavata\API\Airavata_deleteUserComputeResourcePreference_args();
     $args->authzToken = $authzToken;
-    $args->productUri = $productUri;
+    $args->userId = $userId;
+    $args->computeResourceId = $computeResourceId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getChildDataProducts', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'deleteUserComputeResourcePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getChildDataProducts', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('deleteUserComputeResourcePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getChildDataProducts()
+  public function recv_deleteUserComputeResourcePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getChildDataProducts_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteUserComputeResourcePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12555,7 +12901,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getChildDataProducts_result();
+      $result = new \Airavata\API\Airavata_deleteUserComputeResourcePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12574,40 +12920,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getChildDataProducts failed: unknown result");
+    throw new \Exception("deleteUserComputeResourcePreference failed: unknown result");
   }
 
-  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function deleteUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId)
   {
-    $this->send_shareResourceWithUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
-    return $this->recv_shareResourceWithUsers();
+    $this->send_deleteUserStoragePreference($authzToken, $userId, $storageId);
+    return $this->recv_deleteUserStoragePreference();
   }
 
-  public function send_shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function send_deleteUserStoragePreference(\Airavata\Model\Security\AuthzToken $authzToken, $userId, $storageId)
   {
-    $args = new \Airavata\API\Airavata_shareResourceWithUsers_args();
+    $args = new \Airavata\API\Airavata_deleteUserStoragePreference_args();
     $args->authzToken = $authzToken;
-    $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
-    $args->userPermissionList = $userPermissionList;
+    $args->userId = $userId;
+    $args->storageId = $storageId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'shareResourceWithUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'deleteUserStoragePreference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('shareResourceWithUsers', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('deleteUserStoragePreference', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_shareResourceWithUsers()
+  public function recv_deleteUserStoragePreference()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_shareResourceWithUsers_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteUserStoragePreference_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12621,7 +12966,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_shareResourceWithUsers_result();
+      $result = new \Airavata\API\Airavata_deleteUserStoragePreference_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12640,40 +12985,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("shareResourceWithUsers failed: unknown result");
+    throw new \Exception("deleteUserStoragePreference failed: unknown result");
   }
 
-  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function getAllWorkflows(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
   {
-    $this->send_revokeSharingOfResourceFromUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
-    return $this->recv_revokeSharingOfResourceFromUsers();
+    $this->send_getAllWorkflows($authzToken, $gatewayId);
+    return $this->recv_getAllWorkflows();
   }
 
-  public function send_revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
+  public function send_getAllWorkflows(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId)
   {
-    $args = new \Airavata\API\Airavata_revokeSharingOfResourceFromUsers_args();
+    $args = new \Airavata\API\Airavata_getAllWorkflows_args();
     $args->authzToken = $authzToken;
-    $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
-    $args->userPermissionList = $userPermissionList;
+    $args->gatewayId = $gatewayId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'revokeSharingOfResourceFromUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getAllWorkflows', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('revokeSharingOfResourceFromUsers', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getAllWorkflows', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_revokeSharingOfResourceFromUsers()
+  public function recv_getAllWorkflows()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_revokeSharingOfResourceFromUsers_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllWorkflows_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12687,7 +13030,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_revokeSharingOfResourceFromUsers_result();
+      $result = new \Airavata\API\Airavata_getAllWorkflows_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12706,40 +13049,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("revokeSharingOfResourceFromUsers failed: unknown result");
+    throw new \Exception("getAllWorkflows failed: unknown result");
   }
 
-  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
+  public function getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
   {
-    $this->send_getAllAccessibleUsers($authzToken, $resourceId, $resourceType, $permissionType);
-    return $this->recv_getAllAccessibleUsers();
+    $this->send_getWorkflow($authzToken, $workflowTemplateId);
+    return $this->recv_getWorkflow();
   }
 
-  public function send_getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
+  public function send_getWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
   {
-    $args = new \Airavata\API\Airavata_getAllAccessibleUsers_args();
+    $args = new \Airavata\API\Airavata_getWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->resourceId = $resourceId;
-    $args->resourceType = $resourceType;
-    $args->permissionType = $permissionType;
+    $args->workflowTemplateId = $workflowTemplateId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllAccessibleUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllAccessibleUsers', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getWorkflow', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllAccessibleUsers()
+  public function recv_getWorkflow()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllAccessibleUsers_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflow_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12753,7 +13094,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllAccessibleUsers_result();
+      $result = new \Airavata\API\Airavata_getWorkflow_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12772,38 +13113,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getAllAccessibleUsers failed: unknown result");
+    throw new \Exception("getWorkflow failed: unknown result");
   }
 
-  public function createGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
+  public function deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
   {
-    $this->send_createGroup($authzToken, $groupModel);
-    return $this->recv_createGroup();
+    $this->send_deleteWorkflow($authzToken, $workflowTemplateId);
+    $this->recv_deleteWorkflow();
   }
 
-  public function send_createGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
+  public function send_deleteWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId)
   {
-    $args = new \Airavata\API\Airavata_createGroup_args();
+    $args = new \Airavata\API\Airavata_deleteWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->groupModel = $groupModel;
+    $args->workflowTemplateId = $workflowTemplateId;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'createGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'deleteWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('createGroup', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('deleteWorkflow', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_createGroup()
+  public function recv_deleteWorkflow()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_createGroup_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteWorkflow_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12817,13 +13158,10 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_createGroup_result();
+      $result = new \Airavata\API\Airavata_deleteWorkflow_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -12836,38 +13174,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("createGroup failed: unknown result");
+    return;
   }
 
-  public function updateGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
+  public function registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
   {
-    $this->send_updateGroup($authzToken, $groupModel);
-    return $this->recv_updateGroup();
+    $this->send_registerWorkflow($authzToken, $gatewayId, $workflow);
+    return $this->recv_registerWorkflow();
   }
 
-  public function send_updateGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
+  public function send_registerWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $gatewayId, \Airavata\Model\WorkflowModel $workflow)
   {
-    $args = new \Airavata\API\Airavata_updateGroup_args();
+    $args = new \Airavata\API\Airavata_registerWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->groupModel = $groupModel;
+    $args->gatewayId = $gatewayId;
+    $args->workflow = $workflow;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'updateGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'registerWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('updateGroup', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('registerWorkflow', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_updateGroup()
+  public function recv_registerWorkflow()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateGroup_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerWorkflow_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12881,7 +13220,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_updateGroup_result();
+      $result = new \Airavata\API\Airavata_registerWorkflow_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -12900,40 +13239,39 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("updateGroup failed: unknown result");
+    throw new \Exception("registerWorkflow failed: unknown result");
   }
 
-  public function deleteGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId, $ownerId, $gatewayId)
+  public function updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
   {
-    $this->send_deleteGroup($authzToken, $groupId, $ownerId, $gatewayId);
-    return $this->recv_deleteGroup();
+    $this->send_updateWorkflow($authzToken, $workflowTemplateId, $workflow);
+    $this->recv_updateWorkflow();
   }
 
-  public function send_deleteGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId, $ownerId, $gatewayId)
+  public function send_updateWorkflow(\Airavata\Model\Security\AuthzToken $authzToken, $workflowTemplateId, \Airavata\Model\WorkflowModel $workflow)
   {
-    $args = new \Airavata\API\Airavata_deleteGroup_args();
+    $args = new \Airavata\API\Airavata_updateWorkflow_args();
     $args->authzToken = $authzToken;
-    $args->groupId = $groupId;
-    $args->ownerId = $ownerId;
-    $args->gatewayId = $gatewayId;
+    $args->workflowTemplateId = $workflowTemplateId;
+    $args->workflow = $workflow;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'deleteGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'updateWorkflow', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('deleteGroup', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('updateWorkflow', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_deleteGroup()
+  public function recv_updateWorkflow()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteGroup_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateWorkflow_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -12947,13 +13285,10 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_deleteGroup_result();
+      $result = new \Airavata\API\Airavata_updateWorkflow_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
-    if ($result->success !== null) {
-      return $result->success;
-    }
     if ($result->ire !== null) {
       throw $result->ire;
     }
@@ -12966,38 +13301,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("deleteGroup failed: unknown result");
+    return;
   }
 
-  public function getGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId)
+  public function getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $this->send_getGroup($authzToken, $groupId);
-    return $this->recv_getGroup();
+    $this->send_getWorkflowTemplateId($authzToken, $workflowName);
+    return $this->recv_getWorkflowTemplateId();
   }
 
-  public function send_getGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId)
+  public function send_getWorkflowTemplateId(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $args = new \Airavata\API\Airavata_getGroup_args();
+    $args = new \Airavata\API\Airavata_getWorkflowTemplateId_args();
     $args->authzToken = $authzToken;
-    $args->groupId = $groupId;
+    $args->workflowName = $workflowName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'getWorkflowTemplateId', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getGroup', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('getWorkflowTemplateId', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getGroup()
+  public function recv_getWorkflowTemplateId()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getGroup_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getWorkflowTemplateId_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -13011,7 +13346,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getGroup_result();
+      $result = new \Airavata\API\Airavata_getWorkflowTemplateId_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -13030,39 +13365,38 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getGroup failed: unknown result");
+    throw new \Exception("getWorkflowTemplateId failed: unknown result");
   }
 
-  public function getAllGroupsUserBelongs(\Airavata\Model\Security\AuthzToken $authzToken, $userName, $gatewayId)
+  public function isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $this->send_getAllGroupsUserBelongs($authzToken, $userName, $gatewayId);
-    return $this->recv_getAllGroupsUserBelongs();
+    $this->send_isWorkflowExistWithName($authzToken, $workflowName);
+    return $this->recv_isWorkflowExistWithName();
   }
 
-  public function send_getAllGroupsUserBelongs(\Airavata\Model\Security\AuthzToken $authzToken, $userName, $gatewayId)
+  public function send_isWorkflowExistWithName(\Airavata\Model\Security\AuthzToken $authzToken, $workflowName)
   {
-    $args = new \Airavata\API\Airavata_getAllGroupsUserBelongs_args();
+    $args = new \Airavata\API\Airavata_isWorkflowExistWithName_args();
     $args->authzToken = $authzToken;
-    $args->userName = $userName;
-    $args->gatewayId = $gatewayId;
+    $args->workflowName = $workflowName;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
-      thrift_protocol_write_binary($this->output_, 'getAllGroupsUserBelongs', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+      thrift_protocol_write_binary($this->output_, 'isWorkflowExistWithName', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
     else
     {
-      $this->output_->writeMessageBegin('getAllGroupsUserBelongs', TMessageType::CALL, $this->seqid_);
+      $this->output_->writeMessageBegin('isWorkflowExistWithName', TMessageType::CALL, $this->seqid_);
       $args->write($this->output_);
       $this->output_->writeMessageEnd();
       $this->output_->getTransport()->flush();
     }
   }
 
-  public function recv_getAllGroupsUserBelongs()
+  public function recv_isWorkflowExistWithName()
   {
     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
-    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllGroupsUserBelongs_result', $this->input_->isStrictRead());
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_isWorkflowExistWithName_result', $this->input_->isStrictRead());
     else
     {
       $rseqid = 0;
@@ -13076,7 +13410,7 @@ class AiravataClient implements \Airavata\API\AiravataIf {
         $this->input_->readMessageEnd();
         throw $x;
       }
-      $result = new \Airavata\API\Airavata_getAllGroupsUserBelongs_result();
+      $result = new \Airavata\API\Airavata_isWorkflowExistWithName_result();
       $result->read($this->input_);
       $this->input_->readMessageEnd();
     }
@@ -13095,98 +13429,4423 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ae !== null) {
       throw $result->ae;
     }
-    throw new \Exception("getAllGroupsUserBelongs failed: unknown result");
+    throw new \Exception("isWorkflowExistWithName failed: unknown result");
   }
 
-}
-
-// HELPER FUNCTIONS AND STRUCTURES
+  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
+  {
+    $this->send_registerDataProduct($authzToken, $dataProductModel);
+    return $this->recv_registerDataProduct();
+  }
 
-class Airavata_getAPIVersion_args {
-  static $_TSPEC;
+  public function send_registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
+  {
+    $args = new \Airavata\API\Airavata_registerDataProduct_args();
+    $args->authzToken = $authzToken;
+    $args->dataProductModel = $dataProductModel;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'registerDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('registerDataProduct', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
 
-  /**
-   * @var \Airavata\Model\Security\AuthzToken
-   */
-  public $authzToken = null;
+  public function recv_registerDataProduct()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerDataProduct_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
 
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'authzToken',
-          'type' => TType::STRUCT,
-          'class' => '\Airavata\Model\Security\AuthzToken',
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['authzToken'])) {
-        $this->authzToken = $vals['authzToken'];
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
       }
+      $result = new \Airavata\API\Airavata_registerDataProduct_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("registerDataProduct failed: unknown result");
   }
 
-  public function getName() {
-    return 'Airavata_getAPIVersion_args';
+  public function getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
+  {
+    $this->send_getDataProduct($authzToken, $dataProductUri);
+    return $this->recv_getDataProduct();
   }
 
-  public function read($input)
+  public function send_getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
   {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
+    $args = new \Airavata\API\Airavata_getDataProduct_args();
+    $args->authzToken = $authzToken;
+    $args->dataProductUri = $dataProductUri;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
     {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
-            $xfer += $this->authzToken->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
+      thrift_protocol_write_binary($this->output_, 'getDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
     }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('Airavata_getAPIVersion_args');
-    if ($this->authzToken !== null) {
-      if (!is_object($this->authzToken)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
-      $xfer += $this->authzToken->write($output);
-      $xfer += $output->writeFieldEnd();
+    else
+    {
+      $this->output_->writeMessageBegin('getDataProduct', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
     }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
   }
 
-}
+  public function recv_getDataProduct()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getDataProduct_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_getDataProduct_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      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 \Exception("getDataProduct failed: unknown result");
+  }
+
+  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
+  {
+    $this->send_registerReplicaLocation($authzToken, $replicaLocationModel);
+    return $this->recv_registerReplicaLocation();
+  }
+
+  public function send_registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
+  {
+    $args = new \Airavata\API\Airavata_registerReplicaLocation_args();
+    $args->authzToken = $authzToken;
+    $args->replicaLocationModel = $replicaLocationModel;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'registerReplicaLocation', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('registerReplicaLocation', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_registerReplicaLocation()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerReplicaLocation_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \Airavata\API\Airavata_registerReplicaLocation_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    if ($result->ire !== null) {
+      throw $result->ire;
+    

<TRUNCATED>

[17/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index 4fcd5b1..48b1845 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -2825,10 +2825,278 @@ class AiravataHandler : virtual public AiravataIf {
   }
 
   /**
-   * Delete the Storage Resource Preference of a registered gateway profile.
+   * Register User Resource Profile.
    * 
-   * @param gatewayID
-   *   The identifier of the gateway profile to be deleted.
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   *    The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+   *      resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param authzToken
+   * @param userResourceProfile
+   */
+  void registerUserResourceProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile) {
+    // Your implementation goes here
+    printf("registerUserResourceProfile\n");
+  }
+
+  /**
+   * Fetch the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource profile.
+   * 
+   * @return UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   */
+  void getUserResourceProfile( ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) {
+    // Your implementation goes here
+    printf("getUserResourceProfile\n");
+  }
+
+  /**
+   * Update a User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be updated.
+   * 
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param userResourceProfile
+   */
+  bool updateUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile) {
+    // Your implementation goes here
+    printf("updateUserResourceProfile\n");
+  }
+
+  /**
+   * Delete the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be deleted.
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   */
+  bool deleteUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) {
+    // Your implementation goes here
+    printf("deleteUserResourceProfile\n");
+  }
+
+  /**
+   * Add a Compute Resource Preference to a registered User profile.
+   * 
+   * @param userId
+   *   The identifier for the User resource profile to be added.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
+  bool addUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& computeResourcePreference) {
+    // Your implementation goes here
+    printf("addUserComputeResourcePreference\n");
+  }
+
+  /**
+   * Add a Storage Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be added.
+   * 
+   * @param storageResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageResourceId
+   * @param storagePreference
+   */
+  bool addUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& storagePreference) {
+    // Your implementation goes here
+    printf("addUserStoragePreference\n");
+  }
+
+  /**
+   * 
+   * Fetch a Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be requested
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return computeResourcePreference
+   *   Returns the ComputeResourcePreference object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   */
+  void getUserComputeResourcePreference( ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId) {
+    // Your implementation goes here
+    printf("getUserComputeResourcePreference\n");
+  }
+
+  /**
+   * 
+   * Fetch a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+   * 
+   * @param storageResourceId
+   *   Identifier of the Stprage Preference required to be fetched.
+   * 
+   * @return StoragePreference
+   *   Returns the StoragePreference object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageResourceId
+   */
+  void getUserStoragePreference( ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageResourceId) {
+    // Your implementation goes here
+    printf("getUserStoragePreference\n");
+  }
+
+  /**
+   * 
+   * Fetch all user resources Profiles registered
+   * 
+   * @return UserResourceProfile
+   *   Returns all the UserResourcePrifle list object.
+   * 
+   * 
+   * 
+   * @param authzToken
+   */
+  void getAllUserResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) {
+    // Your implementation goes here
+    printf("getAllUserResourceProfiles\n");
+  }
+
+  /**
+   * Update a Compute Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be updated.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
+  bool updateUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& computeResourcePreference) {
+    // Your implementation goes here
+    printf("updateUserComputeResourcePreference\n");
+  }
+
+  /**
+   * Update a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be updated.
+   * 
+   * @param storageId
+   *   The Storage resource identifier of the one that you want to update
+   * 
+   * @param storagePreference
+   *   The storagePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageId
+   * @param storagePreference
+   */
+  bool updateUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageId, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& storagePreference) {
+    // Your implementation goes here
+    printf("updateUserStoragePreference\n");
+  }
+
+  /**
+   * Delete the Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user resource profile to be deleted.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   */
+  bool deleteUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId) {
+    // Your implementation goes here
+    printf("deleteUserComputeResourcePreference\n");
+  }
+
+  /**
+   * Delete the Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user profile to be deleted.
    * 
    * @param storageId
    *   ID of the storage preference you want to delete.
@@ -2838,8 +3106,14 @@ class AiravataHandler : virtual public AiravataIf {
    * 
    * 
    * @param authzToken
-   * @param gatewayId
+   * @param userId
+   * @param storageId
    */
+  bool deleteUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageId) {
+    // Your implementation goes here
+    printf("deleteUserStoragePreference\n");
+  }
+
   void getAllWorkflows(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) {
     // Your implementation goes here
     printf("getAllWorkflows\n");

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
index 49452a0..b01f07b 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavata_api_types.h
@@ -46,6 +46,7 @@
 #include "compute_resource_model_types.h"
 #include "storage_resource_model_types.h"
 #include "gateway_resource_profile_model_types.h"
+#include "user_resource_profile_model_types.h"
 #include "data_movement_models_types.h"
 #include "workflow_data_model_types.h"
 #include "replica_catalog_models_types.h"

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
index b411913..bb86531 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.cpp
@@ -56,9 +56,9 @@ void JobModel::__set_creationTime(const int64_t val) {
 __isset.creationTime = true;
 }
 
-void JobModel::__set_jobStatus(const std::vector< ::apache::airavata::model::status::JobStatus> & val) {
-  this->jobStatus = val;
-__isset.jobStatus = true;
+void JobModel::__set_jobStatuses(const std::vector< ::apache::airavata::model::status::JobStatus> & val) {
+  this->jobStatuses = val;
+__isset.jobStatuses = true;
 }
 
 void JobModel::__set_computeResourceConsumed(const std::string& val) {
@@ -159,19 +159,19 @@ uint32_t JobModel::read(::apache::thrift::protocol::TProtocol* iprot) {
       case 6:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->jobStatus.clear();
+            this->jobStatuses.clear();
             uint32_t _size0;
             ::apache::thrift::protocol::TType _etype3;
             xfer += iprot->readListBegin(_etype3, _size0);
-            this->jobStatus.resize(_size0);
+            this->jobStatuses.resize(_size0);
             uint32_t _i4;
             for (_i4 = 0; _i4 < _size0; ++_i4)
             {
-              xfer += this->jobStatus[_i4].read(iprot);
+              xfer += this->jobStatuses[_i4].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.jobStatus = true;
+          this->__isset.jobStatuses = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -270,12 +270,12 @@ uint32_t JobModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeI64(this->creationTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.jobStatus) {
-    xfer += oprot->writeFieldBegin("jobStatus", ::apache::thrift::protocol::T_LIST, 6);
+  if (this->__isset.jobStatuses) {
+    xfer += oprot->writeFieldBegin("jobStatuses", ::apache::thrift::protocol::T_LIST, 6);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobStatus.size()));
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobStatuses.size()));
       std::vector< ::apache::airavata::model::status::JobStatus> ::const_iterator _iter5;
-      for (_iter5 = this->jobStatus.begin(); _iter5 != this->jobStatus.end(); ++_iter5)
+      for (_iter5 = this->jobStatuses.begin(); _iter5 != this->jobStatuses.end(); ++_iter5)
       {
         xfer += (*_iter5).write(oprot);
       }
@@ -325,7 +325,7 @@ void swap(JobModel &a, JobModel &b) {
   swap(a.processId, b.processId);
   swap(a.jobDescription, b.jobDescription);
   swap(a.creationTime, b.creationTime);
-  swap(a.jobStatus, b.jobStatus);
+  swap(a.jobStatuses, b.jobStatuses);
   swap(a.computeResourceConsumed, b.computeResourceConsumed);
   swap(a.jobName, b.jobName);
   swap(a.workingDir, b.workingDir);
@@ -341,7 +341,7 @@ JobModel::JobModel(const JobModel& other6) {
   processId = other6.processId;
   jobDescription = other6.jobDescription;
   creationTime = other6.creationTime;
-  jobStatus = other6.jobStatus;
+  jobStatuses = other6.jobStatuses;
   computeResourceConsumed = other6.computeResourceConsumed;
   jobName = other6.jobName;
   workingDir = other6.workingDir;
@@ -356,7 +356,7 @@ JobModel& JobModel::operator=(const JobModel& other7) {
   processId = other7.processId;
   jobDescription = other7.jobDescription;
   creationTime = other7.creationTime;
-  jobStatus = other7.jobStatus;
+  jobStatuses = other7.jobStatuses;
   computeResourceConsumed = other7.computeResourceConsumed;
   jobName = other7.jobName;
   workingDir = other7.workingDir;
@@ -374,7 +374,7 @@ void JobModel::printTo(std::ostream& out) const {
   out << ", " << "processId=" << to_string(processId);
   out << ", " << "jobDescription=" << to_string(jobDescription);
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
-  out << ", " << "jobStatus="; (__isset.jobStatus ? (out << to_string(jobStatus)) : (out << "<null>"));
+  out << ", " << "jobStatuses="; (__isset.jobStatuses ? (out << to_string(jobStatuses)) : (out << "<null>"));
   out << ", " << "computeResourceConsumed="; (__isset.computeResourceConsumed ? (out << to_string(computeResourceConsumed)) : (out << "<null>"));
   out << ", " << "jobName="; (__isset.jobName ? (out << to_string(jobName)) : (out << "<null>"));
   out << ", " << "workingDir="; (__isset.workingDir ? (out << to_string(workingDir)) : (out << "<null>"));

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
index 00ba9fe..6e4fa48 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/job_model_types.h
@@ -40,9 +40,9 @@ namespace apache { namespace airavata { namespace model { namespace job {
 class JobModel;
 
 typedef struct _JobModel__isset {
-  _JobModel__isset() : creationTime(false), jobStatus(false), computeResourceConsumed(false), jobName(false), workingDir(false), stdOut(false), stdErr(false), exitCode(false) {}
+  _JobModel__isset() : creationTime(false), jobStatuses(false), computeResourceConsumed(false), jobName(false), workingDir(false), stdOut(false), stdErr(false), exitCode(false) {}
   bool creationTime :1;
-  bool jobStatus :1;
+  bool jobStatuses :1;
   bool computeResourceConsumed :1;
   bool jobName :1;
   bool workingDir :1;
@@ -65,7 +65,7 @@ class JobModel {
   std::string processId;
   std::string jobDescription;
   int64_t creationTime;
-  std::vector< ::apache::airavata::model::status::JobStatus>  jobStatus;
+  std::vector< ::apache::airavata::model::status::JobStatus>  jobStatuses;
   std::string computeResourceConsumed;
   std::string jobName;
   std::string workingDir;
@@ -85,7 +85,7 @@ class JobModel {
 
   void __set_creationTime(const int64_t val);
 
-  void __set_jobStatus(const std::vector< ::apache::airavata::model::status::JobStatus> & val);
+  void __set_jobStatuses(const std::vector< ::apache::airavata::model::status::JobStatus> & val);
 
   void __set_computeResourceConsumed(const std::string& val);
 
@@ -113,9 +113,9 @@ class JobModel {
       return false;
     else if (__isset.creationTime && !(creationTime == rhs.creationTime))
       return false;
-    if (__isset.jobStatus != rhs.__isset.jobStatus)
+    if (__isset.jobStatuses != rhs.__isset.jobStatuses)
       return false;
-    else if (__isset.jobStatus && !(jobStatus == rhs.jobStatus))
+    else if (__isset.jobStatuses && !(jobStatuses == rhs.jobStatuses))
       return false;
     if (__isset.computeResourceConsumed != rhs.__isset.computeResourceConsumed)
       return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
index 8135174..1f72625 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.cpp
@@ -53,9 +53,9 @@ void ProcessModel::__set_lastUpdateTime(const int64_t val) {
 __isset.lastUpdateTime = true;
 }
 
-void ProcessModel::__set_processStatus(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val) {
-  this->processStatus = val;
-__isset.processStatus = true;
+void ProcessModel::__set_processStatuses(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val) {
+  this->processStatuses = val;
+__isset.processStatuses = true;
 }
 
 void ProcessModel::__set_processDetail(const std::string& val) {
@@ -103,9 +103,9 @@ void ProcessModel::__set_taskDag(const std::string& val) {
 __isset.taskDag = true;
 }
 
-void ProcessModel::__set_processError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
-  this->processError = val;
-__isset.processError = true;
+void ProcessModel::__set_processErrors(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
+  this->processErrors = val;
+__isset.processErrors = true;
 }
 
 void ProcessModel::__set_gatewayExecutionId(const std::string& val) {
@@ -206,19 +206,19 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
       case 5:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->processStatus.clear();
+            this->processStatuses.clear();
             uint32_t _size0;
             ::apache::thrift::protocol::TType _etype3;
             xfer += iprot->readListBegin(_etype3, _size0);
-            this->processStatus.resize(_size0);
+            this->processStatuses.resize(_size0);
             uint32_t _i4;
             for (_i4 = 0; _i4 < _size0; ++_i4)
             {
-              xfer += this->processStatus[_i4].read(iprot);
+              xfer += this->processStatuses[_i4].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.processStatus = true;
+          this->__isset.processStatuses = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -334,19 +334,19 @@ uint32_t ProcessModel::read(::apache::thrift::protocol::TProtocol* iprot) {
       case 15:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->processError.clear();
+            this->processErrors.clear();
             uint32_t _size20;
             ::apache::thrift::protocol::TType _etype23;
             xfer += iprot->readListBegin(_etype23, _size20);
-            this->processError.resize(_size20);
+            this->processErrors.resize(_size20);
             uint32_t _i24;
             for (_i24 = 0; _i24 < _size20; ++_i24)
             {
-              xfer += this->processError[_i24].read(iprot);
+              xfer += this->processErrors[_i24].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.processError = true;
+          this->__isset.processErrors = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -466,12 +466,12 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeI64(this->lastUpdateTime);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.processStatus) {
-    xfer += oprot->writeFieldBegin("processStatus", ::apache::thrift::protocol::T_LIST, 5);
+  if (this->__isset.processStatuses) {
+    xfer += oprot->writeFieldBegin("processStatuses", ::apache::thrift::protocol::T_LIST, 5);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processStatus.size()));
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processStatuses.size()));
       std::vector< ::apache::airavata::model::status::ProcessStatus> ::const_iterator _iter30;
-      for (_iter30 = this->processStatus.begin(); _iter30 != this->processStatus.end(); ++_iter30)
+      for (_iter30 = this->processStatuses.begin(); _iter30 != this->processStatuses.end(); ++_iter30)
       {
         xfer += (*_iter30).write(oprot);
       }
@@ -548,12 +548,12 @@ uint32_t ProcessModel::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeString(this->taskDag);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.processError) {
-    xfer += oprot->writeFieldBegin("processError", ::apache::thrift::protocol::T_LIST, 15);
+  if (this->__isset.processErrors) {
+    xfer += oprot->writeFieldBegin("processErrors", ::apache::thrift::protocol::T_LIST, 15);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processError.size()));
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->processErrors.size()));
       std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter34;
-      for (_iter34 = this->processError.begin(); _iter34 != this->processError.end(); ++_iter34)
+      for (_iter34 = this->processErrors.begin(); _iter34 != this->processErrors.end(); ++_iter34)
       {
         xfer += (*_iter34).write(oprot);
       }
@@ -620,7 +620,7 @@ void swap(ProcessModel &a, ProcessModel &b) {
   swap(a.experimentId, b.experimentId);
   swap(a.creationTime, b.creationTime);
   swap(a.lastUpdateTime, b.lastUpdateTime);
-  swap(a.processStatus, b.processStatus);
+  swap(a.processStatuses, b.processStatuses);
   swap(a.processDetail, b.processDetail);
   swap(a.applicationInterfaceId, b.applicationInterfaceId);
   swap(a.applicationDeploymentId, b.applicationDeploymentId);
@@ -630,7 +630,7 @@ void swap(ProcessModel &a, ProcessModel &b) {
   swap(a.processResourceSchedule, b.processResourceSchedule);
   swap(a.tasks, b.tasks);
   swap(a.taskDag, b.taskDag);
-  swap(a.processError, b.processError);
+  swap(a.processErrors, b.processErrors);
   swap(a.gatewayExecutionId, b.gatewayExecutionId);
   swap(a.enableEmailNotification, b.enableEmailNotification);
   swap(a.emailAddresses, b.emailAddresses);
@@ -647,7 +647,7 @@ ProcessModel::ProcessModel(const ProcessModel& other36) {
   experimentId = other36.experimentId;
   creationTime = other36.creationTime;
   lastUpdateTime = other36.lastUpdateTime;
-  processStatus = other36.processStatus;
+  processStatuses = other36.processStatuses;
   processDetail = other36.processDetail;
   applicationInterfaceId = other36.applicationInterfaceId;
   applicationDeploymentId = other36.applicationDeploymentId;
@@ -657,7 +657,7 @@ ProcessModel::ProcessModel(const ProcessModel& other36) {
   processResourceSchedule = other36.processResourceSchedule;
   tasks = other36.tasks;
   taskDag = other36.taskDag;
-  processError = other36.processError;
+  processErrors = other36.processErrors;
   gatewayExecutionId = other36.gatewayExecutionId;
   enableEmailNotification = other36.enableEmailNotification;
   emailAddresses = other36.emailAddresses;
@@ -673,7 +673,7 @@ ProcessModel& ProcessModel::operator=(const ProcessModel& other37) {
   experimentId = other37.experimentId;
   creationTime = other37.creationTime;
   lastUpdateTime = other37.lastUpdateTime;
-  processStatus = other37.processStatus;
+  processStatuses = other37.processStatuses;
   processDetail = other37.processDetail;
   applicationInterfaceId = other37.applicationInterfaceId;
   applicationDeploymentId = other37.applicationDeploymentId;
@@ -683,7 +683,7 @@ ProcessModel& ProcessModel::operator=(const ProcessModel& other37) {
   processResourceSchedule = other37.processResourceSchedule;
   tasks = other37.tasks;
   taskDag = other37.taskDag;
-  processError = other37.processError;
+  processErrors = other37.processErrors;
   gatewayExecutionId = other37.gatewayExecutionId;
   enableEmailNotification = other37.enableEmailNotification;
   emailAddresses = other37.emailAddresses;
@@ -702,7 +702,7 @@ void ProcessModel::printTo(std::ostream& out) const {
   out << ", " << "experimentId=" << to_string(experimentId);
   out << ", " << "creationTime="; (__isset.creationTime ? (out << to_string(creationTime)) : (out << "<null>"));
   out << ", " << "lastUpdateTime="; (__isset.lastUpdateTime ? (out << to_string(lastUpdateTime)) : (out << "<null>"));
-  out << ", " << "processStatus="; (__isset.processStatus ? (out << to_string(processStatus)) : (out << "<null>"));
+  out << ", " << "processStatuses="; (__isset.processStatuses ? (out << to_string(processStatuses)) : (out << "<null>"));
   out << ", " << "processDetail="; (__isset.processDetail ? (out << to_string(processDetail)) : (out << "<null>"));
   out << ", " << "applicationInterfaceId="; (__isset.applicationInterfaceId ? (out << to_string(applicationInterfaceId)) : (out << "<null>"));
   out << ", " << "applicationDeploymentId="; (__isset.applicationDeploymentId ? (out << to_string(applicationDeploymentId)) : (out << "<null>"));
@@ -712,7 +712,7 @@ void ProcessModel::printTo(std::ostream& out) const {
   out << ", " << "processResourceSchedule="; (__isset.processResourceSchedule ? (out << to_string(processResourceSchedule)) : (out << "<null>"));
   out << ", " << "tasks="; (__isset.tasks ? (out << to_string(tasks)) : (out << "<null>"));
   out << ", " << "taskDag="; (__isset.taskDag ? (out << to_string(taskDag)) : (out << "<null>"));
-  out << ", " << "processError="; (__isset.processError ? (out << to_string(processError)) : (out << "<null>"));
+  out << ", " << "processErrors="; (__isset.processErrors ? (out << to_string(processErrors)) : (out << "<null>"));
   out << ", " << "gatewayExecutionId="; (__isset.gatewayExecutionId ? (out << to_string(gatewayExecutionId)) : (out << "<null>"));
   out << ", " << "enableEmailNotification="; (__isset.enableEmailNotification ? (out << to_string(enableEmailNotification)) : (out << "<null>"));
   out << ", " << "emailAddresses="; (__isset.emailAddresses ? (out << to_string(emailAddresses)) : (out << "<null>"));

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
index 5d73b26..82b8113 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/process_model_types.h
@@ -44,10 +44,10 @@ namespace apache { namespace airavata { namespace model { namespace process {
 class ProcessModel;
 
 typedef struct _ProcessModel__isset {
-  _ProcessModel__isset() : creationTime(false), lastUpdateTime(false), processStatus(false), processDetail(false), applicationInterfaceId(false), applicationDeploymentId(false), computeResourceId(false), processInputs(false), processOutputs(false), processResourceSchedule(false), tasks(false), taskDag(false), processError(false), gatewayExecutionId(false), enableEmailNotification(false), emailAddresses(false), storageResourceId(false), userDn(false), generateCert(true), experimentDataDir(false), userName(false) {}
+  _ProcessModel__isset() : creationTime(false), lastUpdateTime(false), processStatuses(false), processDetail(false), applicationInterfaceId(false), applicationDeploymentId(false), computeResourceId(false), processInputs(false), processOutputs(false), processResourceSchedule(false), tasks(false), taskDag(false), processErrors(false), gatewayExecutionId(false), enableEmailNotification(false), emailAddresses(false), storageResourceId(false), userDn(false), generateCert(true), experimentDataDir(false), userName(false) {}
   bool creationTime :1;
   bool lastUpdateTime :1;
-  bool processStatus :1;
+  bool processStatuses :1;
   bool processDetail :1;
   bool applicationInterfaceId :1;
   bool applicationDeploymentId :1;
@@ -57,7 +57,7 @@ typedef struct _ProcessModel__isset {
   bool processResourceSchedule :1;
   bool tasks :1;
   bool taskDag :1;
-  bool processError :1;
+  bool processErrors :1;
   bool gatewayExecutionId :1;
   bool enableEmailNotification :1;
   bool emailAddresses :1;
@@ -81,7 +81,7 @@ class ProcessModel {
   std::string experimentId;
   int64_t creationTime;
   int64_t lastUpdateTime;
-  std::vector< ::apache::airavata::model::status::ProcessStatus>  processStatus;
+  std::vector< ::apache::airavata::model::status::ProcessStatus>  processStatuses;
   std::string processDetail;
   std::string applicationInterfaceId;
   std::string applicationDeploymentId;
@@ -91,7 +91,7 @@ class ProcessModel {
    ::apache::airavata::model::scheduling::ComputationalResourceSchedulingModel processResourceSchedule;
   std::vector< ::apache::airavata::model::task::TaskModel>  tasks;
   std::string taskDag;
-  std::vector< ::apache::airavata::model::commons::ErrorModel>  processError;
+  std::vector< ::apache::airavata::model::commons::ErrorModel>  processErrors;
   std::string gatewayExecutionId;
   bool enableEmailNotification;
   std::vector<std::string>  emailAddresses;
@@ -111,7 +111,7 @@ class ProcessModel {
 
   void __set_lastUpdateTime(const int64_t val);
 
-  void __set_processStatus(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val);
+  void __set_processStatuses(const std::vector< ::apache::airavata::model::status::ProcessStatus> & val);
 
   void __set_processDetail(const std::string& val);
 
@@ -131,7 +131,7 @@ class ProcessModel {
 
   void __set_taskDag(const std::string& val);
 
-  void __set_processError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
+  void __set_processErrors(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
 
   void __set_gatewayExecutionId(const std::string& val);
 
@@ -163,9 +163,9 @@ class ProcessModel {
       return false;
     else if (__isset.lastUpdateTime && !(lastUpdateTime == rhs.lastUpdateTime))
       return false;
-    if (__isset.processStatus != rhs.__isset.processStatus)
+    if (__isset.processStatuses != rhs.__isset.processStatuses)
       return false;
-    else if (__isset.processStatus && !(processStatus == rhs.processStatus))
+    else if (__isset.processStatuses && !(processStatuses == rhs.processStatuses))
       return false;
     if (__isset.processDetail != rhs.__isset.processDetail)
       return false;
@@ -203,9 +203,9 @@ class ProcessModel {
       return false;
     else if (__isset.taskDag && !(taskDag == rhs.taskDag))
       return false;
-    if (__isset.processError != rhs.__isset.processError)
+    if (__isset.processErrors != rhs.__isset.processErrors)
       return false;
-    else if (__isset.processError && !(processError == rhs.processError))
+    else if (__isset.processErrors && !(processErrors == rhs.processErrors))
       return false;
     if (__isset.gatewayExecutionId != rhs.__isset.gatewayExecutionId)
       return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
index e73eca8..337f2d5 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.cpp
@@ -85,8 +85,8 @@ void TaskModel::__set_lastUpdateTime(const int64_t val) {
   this->lastUpdateTime = val;
 }
 
-void TaskModel::__set_taskStatus(const std::vector< ::apache::airavata::model::status::TaskStatus> & val) {
-  this->taskStatus = val;
+void TaskModel::__set_taskStatuses(const std::vector< ::apache::airavata::model::status::TaskStatus> & val) {
+  this->taskStatuses = val;
 }
 
 void TaskModel::__set_taskDetail(const std::string& val) {
@@ -99,9 +99,9 @@ void TaskModel::__set_subTaskModel(const std::string& val) {
 __isset.subTaskModel = true;
 }
 
-void TaskModel::__set_taskError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
-  this->taskError = val;
-__isset.taskError = true;
+void TaskModel::__set_taskErrors(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val) {
+  this->taskErrors = val;
+__isset.taskErrors = true;
 }
 
 void TaskModel::__set_jobs(const std::vector< ::apache::airavata::model::job::JobModel> & val) {
@@ -126,7 +126,7 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
   bool isset_parentProcessId = false;
   bool isset_creationTime = false;
   bool isset_lastUpdateTime = false;
-  bool isset_taskStatus = false;
+  bool isset_taskStatuses = false;
 
   while (true)
   {
@@ -181,19 +181,19 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
       case 6:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->taskStatus.clear();
+            this->taskStatuses.clear();
             uint32_t _size1;
             ::apache::thrift::protocol::TType _etype4;
             xfer += iprot->readListBegin(_etype4, _size1);
-            this->taskStatus.resize(_size1);
+            this->taskStatuses.resize(_size1);
             uint32_t _i5;
             for (_i5 = 0; _i5 < _size1; ++_i5)
             {
-              xfer += this->taskStatus[_i5].read(iprot);
+              xfer += this->taskStatuses[_i5].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          isset_taskStatus = true;
+          isset_taskStatuses = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -217,19 +217,19 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
       case 9:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->taskError.clear();
+            this->taskErrors.clear();
             uint32_t _size6;
             ::apache::thrift::protocol::TType _etype9;
             xfer += iprot->readListBegin(_etype9, _size6);
-            this->taskError.resize(_size6);
+            this->taskErrors.resize(_size6);
             uint32_t _i10;
             for (_i10 = 0; _i10 < _size6; ++_i10)
             {
-              xfer += this->taskError[_i10].read(iprot);
+              xfer += this->taskErrors[_i10].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
-          this->__isset.taskError = true;
+          this->__isset.taskErrors = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -273,7 +273,7 @@ uint32_t TaskModel::read(::apache::thrift::protocol::TProtocol* iprot) {
     throw TProtocolException(TProtocolException::INVALID_DATA);
   if (!isset_lastUpdateTime)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_taskStatus)
+  if (!isset_taskStatuses)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
@@ -303,11 +303,11 @@ uint32_t TaskModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
   xfer += oprot->writeI64(this->lastUpdateTime);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("taskStatus", ::apache::thrift::protocol::T_LIST, 6);
+  xfer += oprot->writeFieldBegin("taskStatuses", ::apache::thrift::protocol::T_LIST, 6);
   {
-    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskStatus.size()));
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskStatuses.size()));
     std::vector< ::apache::airavata::model::status::TaskStatus> ::const_iterator _iter16;
-    for (_iter16 = this->taskStatus.begin(); _iter16 != this->taskStatus.end(); ++_iter16)
+    for (_iter16 = this->taskStatuses.begin(); _iter16 != this->taskStatuses.end(); ++_iter16)
     {
       xfer += (*_iter16).write(oprot);
     }
@@ -325,12 +325,12 @@ uint32_t TaskModel::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeBinary(this->subTaskModel);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.taskError) {
-    xfer += oprot->writeFieldBegin("taskError", ::apache::thrift::protocol::T_LIST, 9);
+  if (this->__isset.taskErrors) {
+    xfer += oprot->writeFieldBegin("taskErrors", ::apache::thrift::protocol::T_LIST, 9);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskError.size()));
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskErrors.size()));
       std::vector< ::apache::airavata::model::commons::ErrorModel> ::const_iterator _iter17;
-      for (_iter17 = this->taskError.begin(); _iter17 != this->taskError.end(); ++_iter17)
+      for (_iter17 = this->taskErrors.begin(); _iter17 != this->taskErrors.end(); ++_iter17)
       {
         xfer += (*_iter17).write(oprot);
       }
@@ -363,10 +363,10 @@ void swap(TaskModel &a, TaskModel &b) {
   swap(a.parentProcessId, b.parentProcessId);
   swap(a.creationTime, b.creationTime);
   swap(a.lastUpdateTime, b.lastUpdateTime);
-  swap(a.taskStatus, b.taskStatus);
+  swap(a.taskStatuses, b.taskStatuses);
   swap(a.taskDetail, b.taskDetail);
   swap(a.subTaskModel, b.subTaskModel);
-  swap(a.taskError, b.taskError);
+  swap(a.taskErrors, b.taskErrors);
   swap(a.jobs, b.jobs);
   swap(a.__isset, b.__isset);
 }
@@ -377,10 +377,10 @@ TaskModel::TaskModel(const TaskModel& other19) {
   parentProcessId = other19.parentProcessId;
   creationTime = other19.creationTime;
   lastUpdateTime = other19.lastUpdateTime;
-  taskStatus = other19.taskStatus;
+  taskStatuses = other19.taskStatuses;
   taskDetail = other19.taskDetail;
   subTaskModel = other19.subTaskModel;
-  taskError = other19.taskError;
+  taskErrors = other19.taskErrors;
   jobs = other19.jobs;
   __isset = other19.__isset;
 }
@@ -390,10 +390,10 @@ TaskModel& TaskModel::operator=(const TaskModel& other20) {
   parentProcessId = other20.parentProcessId;
   creationTime = other20.creationTime;
   lastUpdateTime = other20.lastUpdateTime;
-  taskStatus = other20.taskStatus;
+  taskStatuses = other20.taskStatuses;
   taskDetail = other20.taskDetail;
   subTaskModel = other20.subTaskModel;
-  taskError = other20.taskError;
+  taskErrors = other20.taskErrors;
   jobs = other20.jobs;
   __isset = other20.__isset;
   return *this;
@@ -406,10 +406,10 @@ void TaskModel::printTo(std::ostream& out) const {
   out << ", " << "parentProcessId=" << to_string(parentProcessId);
   out << ", " << "creationTime=" << to_string(creationTime);
   out << ", " << "lastUpdateTime=" << to_string(lastUpdateTime);
-  out << ", " << "taskStatus=" << to_string(taskStatus);
+  out << ", " << "taskStatuses=" << to_string(taskStatuses);
   out << ", " << "taskDetail="; (__isset.taskDetail ? (out << to_string(taskDetail)) : (out << "<null>"));
   out << ", " << "subTaskModel="; (__isset.subTaskModel ? (out << to_string(subTaskModel)) : (out << "<null>"));
-  out << ", " << "taskError="; (__isset.taskError ? (out << to_string(taskError)) : (out << "<null>"));
+  out << ", " << "taskErrors="; (__isset.taskErrors ? (out << to_string(taskErrors)) : (out << "<null>"));
   out << ", " << "jobs="; (__isset.jobs ? (out << to_string(jobs)) : (out << "<null>"));
   out << ")";
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
index 8a98904..ab0089c 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/task_model_types.h
@@ -76,10 +76,10 @@ class JobSubmissionTaskModel;
 class MonitorTaskModel;
 
 typedef struct _TaskModel__isset {
-  _TaskModel__isset() : taskDetail(false), subTaskModel(false), taskError(false), jobs(false) {}
+  _TaskModel__isset() : taskDetail(false), subTaskModel(false), taskErrors(false), jobs(false) {}
   bool taskDetail :1;
   bool subTaskModel :1;
-  bool taskError :1;
+  bool taskErrors :1;
   bool jobs :1;
 } _TaskModel__isset;
 
@@ -97,10 +97,10 @@ class TaskModel {
   std::string parentProcessId;
   int64_t creationTime;
   int64_t lastUpdateTime;
-  std::vector< ::apache::airavata::model::status::TaskStatus>  taskStatus;
+  std::vector< ::apache::airavata::model::status::TaskStatus>  taskStatuses;
   std::string taskDetail;
   std::string subTaskModel;
-  std::vector< ::apache::airavata::model::commons::ErrorModel>  taskError;
+  std::vector< ::apache::airavata::model::commons::ErrorModel>  taskErrors;
   std::vector< ::apache::airavata::model::job::JobModel>  jobs;
 
   _TaskModel__isset __isset;
@@ -115,13 +115,13 @@ class TaskModel {
 
   void __set_lastUpdateTime(const int64_t val);
 
-  void __set_taskStatus(const std::vector< ::apache::airavata::model::status::TaskStatus> & val);
+  void __set_taskStatuses(const std::vector< ::apache::airavata::model::status::TaskStatus> & val);
 
   void __set_taskDetail(const std::string& val);
 
   void __set_subTaskModel(const std::string& val);
 
-  void __set_taskError(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
+  void __set_taskErrors(const std::vector< ::apache::airavata::model::commons::ErrorModel> & val);
 
   void __set_jobs(const std::vector< ::apache::airavata::model::job::JobModel> & val);
 
@@ -137,7 +137,7 @@ class TaskModel {
       return false;
     if (!(lastUpdateTime == rhs.lastUpdateTime))
       return false;
-    if (!(taskStatus == rhs.taskStatus))
+    if (!(taskStatuses == rhs.taskStatuses))
       return false;
     if (__isset.taskDetail != rhs.__isset.taskDetail)
       return false;
@@ -147,9 +147,9 @@ class TaskModel {
       return false;
     else if (__isset.subTaskModel && !(subTaskModel == rhs.subTaskModel))
       return false;
-    if (__isset.taskError != rhs.__isset.taskError)
+    if (__isset.taskErrors != rhs.__isset.taskErrors)
       return false;
-    else if (__isset.taskError && !(taskError == rhs.taskError))
+    else if (__isset.taskErrors && !(taskErrors == rhs.taskErrors))
       return false;
     if (__isset.jobs != rhs.__isset.jobs)
       return false;

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.cpp
new file mode 100644
index 0000000..c235d16
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.cpp
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "user_resource_profile_model_constants.h"
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace userresourceprofile {
+
+const user_resource_profile_modelConstants g_user_resource_profile_model_constants;
+
+user_resource_profile_modelConstants::user_resource_profile_modelConstants() {
+}
+
+}}}}} // namespace
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.h
new file mode 100644
index 0000000..8684bee
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_constants.h
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef user_resource_profile_model_CONSTANTS_H
+#define user_resource_profile_model_CONSTANTS_H
+
+#include "user_resource_profile_model_types.h"
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace userresourceprofile {
+
+class user_resource_profile_modelConstants {
+ public:
+  user_resource_profile_modelConstants();
+
+};
+
+extern const user_resource_profile_modelConstants g_user_resource_profile_model_constants;
+
+}}}}} // namespace
+
+#endif

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.cpp
new file mode 100644
index 0000000..2971e4f
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.cpp
@@ -0,0 +1,714 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#include "user_resource_profile_model_types.h"
+
+#include <algorithm>
+#include <ostream>
+
+#include <thrift/TToString.h>
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace userresourceprofile {
+
+
+ComputeResourcePreference::~ComputeResourcePreference() throw() {
+}
+
+
+void ComputeResourcePreference::__set_computeResourceId(const std::string& val) {
+  this->computeResourceId = val;
+}
+
+void ComputeResourcePreference::__set_loginUserName(const std::string& val) {
+  this->loginUserName = val;
+__isset.loginUserName = true;
+}
+
+void ComputeResourcePreference::__set_preferredBatchQueue(const std::string& val) {
+  this->preferredBatchQueue = val;
+__isset.preferredBatchQueue = true;
+}
+
+void ComputeResourcePreference::__set_scratchLocation(const std::string& val) {
+  this->scratchLocation = val;
+__isset.scratchLocation = true;
+}
+
+void ComputeResourcePreference::__set_allocationProjectNumber(const std::string& val) {
+  this->allocationProjectNumber = val;
+__isset.allocationProjectNumber = true;
+}
+
+void ComputeResourcePreference::__set_resourceSpecificCredentialStoreToken(const std::string& val) {
+  this->resourceSpecificCredentialStoreToken = val;
+__isset.resourceSpecificCredentialStoreToken = true;
+}
+
+void ComputeResourcePreference::__set_qualityOfService(const std::string& val) {
+  this->qualityOfService = val;
+__isset.qualityOfService = true;
+}
+
+void ComputeResourcePreference::__set_reservation(const std::string& val) {
+  this->reservation = val;
+__isset.reservation = true;
+}
+
+void ComputeResourcePreference::__set_reservationStartTime(const int64_t val) {
+  this->reservationStartTime = val;
+__isset.reservationStartTime = true;
+}
+
+void ComputeResourcePreference::__set_reservationEndTime(const int64_t val) {
+  this->reservationEndTime = val;
+__isset.reservationEndTime = true;
+}
+
+uint32_t ComputeResourcePreference::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_computeResourceId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->loginUserName);
+          this->__isset.loginUserName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->preferredBatchQueue);
+          this->__isset.preferredBatchQueue = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->scratchLocation);
+          this->__isset.scratchLocation = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->allocationProjectNumber);
+          this->__isset.allocationProjectNumber = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceSpecificCredentialStoreToken);
+          this->__isset.resourceSpecificCredentialStoreToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->qualityOfService);
+          this->__isset.qualityOfService = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->reservation);
+          this->__isset.reservation = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 9:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->reservationStartTime);
+          this->__isset.reservationStartTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 10:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->reservationEndTime);
+          this->__isset.reservationEndTime = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ComputeResourcePreference::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ComputeResourcePreference");
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.loginUserName) {
+    xfer += oprot->writeFieldBegin("loginUserName", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->loginUserName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.preferredBatchQueue) {
+    xfer += oprot->writeFieldBegin("preferredBatchQueue", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->preferredBatchQueue);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.scratchLocation) {
+    xfer += oprot->writeFieldBegin("scratchLocation", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->scratchLocation);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.allocationProjectNumber) {
+    xfer += oprot->writeFieldBegin("allocationProjectNumber", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->allocationProjectNumber);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.resourceSpecificCredentialStoreToken) {
+    xfer += oprot->writeFieldBegin("resourceSpecificCredentialStoreToken", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->resourceSpecificCredentialStoreToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.qualityOfService) {
+    xfer += oprot->writeFieldBegin("qualityOfService", ::apache::thrift::protocol::T_STRING, 7);
+    xfer += oprot->writeString(this->qualityOfService);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.reservation) {
+    xfer += oprot->writeFieldBegin("reservation", ::apache::thrift::protocol::T_STRING, 8);
+    xfer += oprot->writeString(this->reservation);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.reservationStartTime) {
+    xfer += oprot->writeFieldBegin("reservationStartTime", ::apache::thrift::protocol::T_I64, 9);
+    xfer += oprot->writeI64(this->reservationStartTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.reservationEndTime) {
+    xfer += oprot->writeFieldBegin("reservationEndTime", ::apache::thrift::protocol::T_I64, 10);
+    xfer += oprot->writeI64(this->reservationEndTime);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ComputeResourcePreference &a, ComputeResourcePreference &b) {
+  using ::std::swap;
+  swap(a.computeResourceId, b.computeResourceId);
+  swap(a.loginUserName, b.loginUserName);
+  swap(a.preferredBatchQueue, b.preferredBatchQueue);
+  swap(a.scratchLocation, b.scratchLocation);
+  swap(a.allocationProjectNumber, b.allocationProjectNumber);
+  swap(a.resourceSpecificCredentialStoreToken, b.resourceSpecificCredentialStoreToken);
+  swap(a.qualityOfService, b.qualityOfService);
+  swap(a.reservation, b.reservation);
+  swap(a.reservationStartTime, b.reservationStartTime);
+  swap(a.reservationEndTime, b.reservationEndTime);
+  swap(a.__isset, b.__isset);
+}
+
+ComputeResourcePreference::ComputeResourcePreference(const ComputeResourcePreference& other0) {
+  computeResourceId = other0.computeResourceId;
+  loginUserName = other0.loginUserName;
+  preferredBatchQueue = other0.preferredBatchQueue;
+  scratchLocation = other0.scratchLocation;
+  allocationProjectNumber = other0.allocationProjectNumber;
+  resourceSpecificCredentialStoreToken = other0.resourceSpecificCredentialStoreToken;
+  qualityOfService = other0.qualityOfService;
+  reservation = other0.reservation;
+  reservationStartTime = other0.reservationStartTime;
+  reservationEndTime = other0.reservationEndTime;
+  __isset = other0.__isset;
+}
+ComputeResourcePreference& ComputeResourcePreference::operator=(const ComputeResourcePreference& other1) {
+  computeResourceId = other1.computeResourceId;
+  loginUserName = other1.loginUserName;
+  preferredBatchQueue = other1.preferredBatchQueue;
+  scratchLocation = other1.scratchLocation;
+  allocationProjectNumber = other1.allocationProjectNumber;
+  resourceSpecificCredentialStoreToken = other1.resourceSpecificCredentialStoreToken;
+  qualityOfService = other1.qualityOfService;
+  reservation = other1.reservation;
+  reservationStartTime = other1.reservationStartTime;
+  reservationEndTime = other1.reservationEndTime;
+  __isset = other1.__isset;
+  return *this;
+}
+void ComputeResourcePreference::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "ComputeResourcePreference(";
+  out << "computeResourceId=" << to_string(computeResourceId);
+  out << ", " << "loginUserName="; (__isset.loginUserName ? (out << to_string(loginUserName)) : (out << "<null>"));
+  out << ", " << "preferredBatchQueue="; (__isset.preferredBatchQueue ? (out << to_string(preferredBatchQueue)) : (out << "<null>"));
+  out << ", " << "scratchLocation="; (__isset.scratchLocation ? (out << to_string(scratchLocation)) : (out << "<null>"));
+  out << ", " << "allocationProjectNumber="; (__isset.allocationProjectNumber ? (out << to_string(allocationProjectNumber)) : (out << "<null>"));
+  out << ", " << "resourceSpecificCredentialStoreToken="; (__isset.resourceSpecificCredentialStoreToken ? (out << to_string(resourceSpecificCredentialStoreToken)) : (out << "<null>"));
+  out << ", " << "qualityOfService="; (__isset.qualityOfService ? (out << to_string(qualityOfService)) : (out << "<null>"));
+  out << ", " << "reservation="; (__isset.reservation ? (out << to_string(reservation)) : (out << "<null>"));
+  out << ", " << "reservationStartTime="; (__isset.reservationStartTime ? (out << to_string(reservationStartTime)) : (out << "<null>"));
+  out << ", " << "reservationEndTime="; (__isset.reservationEndTime ? (out << to_string(reservationEndTime)) : (out << "<null>"));
+  out << ")";
+}
+
+
+StoragePreference::~StoragePreference() throw() {
+}
+
+
+void StoragePreference::__set_storageResourceId(const std::string& val) {
+  this->storageResourceId = val;
+}
+
+void StoragePreference::__set_loginUserName(const std::string& val) {
+  this->loginUserName = val;
+__isset.loginUserName = true;
+}
+
+void StoragePreference::__set_fileSystemRootLocation(const std::string& val) {
+  this->fileSystemRootLocation = val;
+__isset.fileSystemRootLocation = true;
+}
+
+void StoragePreference::__set_resourceSpecificCredentialStoreToken(const std::string& val) {
+  this->resourceSpecificCredentialStoreToken = val;
+__isset.resourceSpecificCredentialStoreToken = true;
+}
+
+uint32_t StoragePreference::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_storageResourceId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageResourceId);
+          isset_storageResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->loginUserName);
+          this->__isset.loginUserName = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->fileSystemRootLocation);
+          this->__isset.fileSystemRootLocation = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->resourceSpecificCredentialStoreToken);
+          this->__isset.resourceSpecificCredentialStoreToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_storageResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t StoragePreference::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("StoragePreference");
+
+  xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->storageResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.loginUserName) {
+    xfer += oprot->writeFieldBegin("loginUserName", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->loginUserName);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.fileSystemRootLocation) {
+    xfer += oprot->writeFieldBegin("fileSystemRootLocation", ::apache::thrift::protocol::T_STRING, 3);
+    xfer += oprot->writeString(this->fileSystemRootLocation);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.resourceSpecificCredentialStoreToken) {
+    xfer += oprot->writeFieldBegin("resourceSpecificCredentialStoreToken", ::apache::thrift::protocol::T_STRING, 4);
+    xfer += oprot->writeString(this->resourceSpecificCredentialStoreToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(StoragePreference &a, StoragePreference &b) {
+  using ::std::swap;
+  swap(a.storageResourceId, b.storageResourceId);
+  swap(a.loginUserName, b.loginUserName);
+  swap(a.fileSystemRootLocation, b.fileSystemRootLocation);
+  swap(a.resourceSpecificCredentialStoreToken, b.resourceSpecificCredentialStoreToken);
+  swap(a.__isset, b.__isset);
+}
+
+StoragePreference::StoragePreference(const StoragePreference& other2) {
+  storageResourceId = other2.storageResourceId;
+  loginUserName = other2.loginUserName;
+  fileSystemRootLocation = other2.fileSystemRootLocation;
+  resourceSpecificCredentialStoreToken = other2.resourceSpecificCredentialStoreToken;
+  __isset = other2.__isset;
+}
+StoragePreference& StoragePreference::operator=(const StoragePreference& other3) {
+  storageResourceId = other3.storageResourceId;
+  loginUserName = other3.loginUserName;
+  fileSystemRootLocation = other3.fileSystemRootLocation;
+  resourceSpecificCredentialStoreToken = other3.resourceSpecificCredentialStoreToken;
+  __isset = other3.__isset;
+  return *this;
+}
+void StoragePreference::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "StoragePreference(";
+  out << "storageResourceId=" << to_string(storageResourceId);
+  out << ", " << "loginUserName="; (__isset.loginUserName ? (out << to_string(loginUserName)) : (out << "<null>"));
+  out << ", " << "fileSystemRootLocation="; (__isset.fileSystemRootLocation ? (out << to_string(fileSystemRootLocation)) : (out << "<null>"));
+  out << ", " << "resourceSpecificCredentialStoreToken="; (__isset.resourceSpecificCredentialStoreToken ? (out << to_string(resourceSpecificCredentialStoreToken)) : (out << "<null>"));
+  out << ")";
+}
+
+
+UserResourceProfile::~UserResourceProfile() throw() {
+}
+
+
+void UserResourceProfile::__set_userId(const std::string& val) {
+  this->userId = val;
+}
+
+void UserResourceProfile::__set_credentialStoreToken(const std::string& val) {
+  this->credentialStoreToken = val;
+__isset.credentialStoreToken = true;
+}
+
+void UserResourceProfile::__set_computeResourcePreferences(const std::vector<ComputeResourcePreference> & val) {
+  this->computeResourcePreferences = val;
+__isset.computeResourcePreferences = true;
+}
+
+void UserResourceProfile::__set_storagePreferences(const std::vector<StoragePreference> & val) {
+  this->storagePreferences = val;
+__isset.storagePreferences = true;
+}
+
+void UserResourceProfile::__set_identityServerTenant(const std::string& val) {
+  this->identityServerTenant = val;
+__isset.identityServerTenant = true;
+}
+
+void UserResourceProfile::__set_identityServerPwdCredToken(const std::string& val) {
+  this->identityServerPwdCredToken = val;
+__isset.identityServerPwdCredToken = true;
+}
+
+uint32_t UserResourceProfile::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_userId = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->credentialStoreToken);
+          this->__isset.credentialStoreToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->computeResourcePreferences.clear();
+            uint32_t _size4;
+            ::apache::thrift::protocol::TType _etype7;
+            xfer += iprot->readListBegin(_etype7, _size4);
+            this->computeResourcePreferences.resize(_size4);
+            uint32_t _i8;
+            for (_i8 = 0; _i8 < _size4; ++_i8)
+            {
+              xfer += this->computeResourcePreferences[_i8].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.computeResourcePreferences = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->storagePreferences.clear();
+            uint32_t _size9;
+            ::apache::thrift::protocol::TType _etype12;
+            xfer += iprot->readListBegin(_etype12, _size9);
+            this->storagePreferences.resize(_size9);
+            uint32_t _i13;
+            for (_i13 = 0; _i13 < _size9; ++_i13)
+            {
+              xfer += this->storagePreferences[_i13].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.storagePreferences = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerTenant);
+          this->__isset.identityServerTenant = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->identityServerPwdCredToken);
+          this->__isset.identityServerPwdCredToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t UserResourceProfile::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("UserResourceProfile");
+
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.credentialStoreToken) {
+    xfer += oprot->writeFieldBegin("credentialStoreToken", ::apache::thrift::protocol::T_STRING, 2);
+    xfer += oprot->writeString(this->credentialStoreToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.computeResourcePreferences) {
+    xfer += oprot->writeFieldBegin("computeResourcePreferences", ::apache::thrift::protocol::T_LIST, 3);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->computeResourcePreferences.size()));
+      std::vector<ComputeResourcePreference> ::const_iterator _iter14;
+      for (_iter14 = this->computeResourcePreferences.begin(); _iter14 != this->computeResourcePreferences.end(); ++_iter14)
+      {
+        xfer += (*_iter14).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.storagePreferences) {
+    xfer += oprot->writeFieldBegin("storagePreferences", ::apache::thrift::protocol::T_LIST, 4);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->storagePreferences.size()));
+      std::vector<StoragePreference> ::const_iterator _iter15;
+      for (_iter15 = this->storagePreferences.begin(); _iter15 != this->storagePreferences.end(); ++_iter15)
+      {
+        xfer += (*_iter15).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerTenant) {
+    xfer += oprot->writeFieldBegin("identityServerTenant", ::apache::thrift::protocol::T_STRING, 5);
+    xfer += oprot->writeString(this->identityServerTenant);
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.identityServerPwdCredToken) {
+    xfer += oprot->writeFieldBegin("identityServerPwdCredToken", ::apache::thrift::protocol::T_STRING, 6);
+    xfer += oprot->writeString(this->identityServerPwdCredToken);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(UserResourceProfile &a, UserResourceProfile &b) {
+  using ::std::swap;
+  swap(a.userId, b.userId);
+  swap(a.credentialStoreToken, b.credentialStoreToken);
+  swap(a.computeResourcePreferences, b.computeResourcePreferences);
+  swap(a.storagePreferences, b.storagePreferences);
+  swap(a.identityServerTenant, b.identityServerTenant);
+  swap(a.identityServerPwdCredToken, b.identityServerPwdCredToken);
+  swap(a.__isset, b.__isset);
+}
+
+UserResourceProfile::UserResourceProfile(const UserResourceProfile& other16) {
+  userId = other16.userId;
+  credentialStoreToken = other16.credentialStoreToken;
+  computeResourcePreferences = other16.computeResourcePreferences;
+  storagePreferences = other16.storagePreferences;
+  identityServerTenant = other16.identityServerTenant;
+  identityServerPwdCredToken = other16.identityServerPwdCredToken;
+  __isset = other16.__isset;
+}
+UserResourceProfile& UserResourceProfile::operator=(const UserResourceProfile& other17) {
+  userId = other17.userId;
+  credentialStoreToken = other17.credentialStoreToken;
+  computeResourcePreferences = other17.computeResourcePreferences;
+  storagePreferences = other17.storagePreferences;
+  identityServerTenant = other17.identityServerTenant;
+  identityServerPwdCredToken = other17.identityServerPwdCredToken;
+  __isset = other17.__isset;
+  return *this;
+}
+void UserResourceProfile::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "UserResourceProfile(";
+  out << "userId=" << to_string(userId);
+  out << ", " << "credentialStoreToken="; (__isset.credentialStoreToken ? (out << to_string(credentialStoreToken)) : (out << "<null>"));
+  out << ", " << "computeResourcePreferences="; (__isset.computeResourcePreferences ? (out << to_string(computeResourcePreferences)) : (out << "<null>"));
+  out << ", " << "storagePreferences="; (__isset.storagePreferences ? (out << to_string(storagePreferences)) : (out << "<null>"));
+  out << ", " << "identityServerTenant="; (__isset.identityServerTenant ? (out << to_string(identityServerTenant)) : (out << "<null>"));
+  out << ", " << "identityServerPwdCredToken="; (__isset.identityServerPwdCredToken ? (out << to_string(identityServerPwdCredToken)) : (out << "<null>"));
+  out << ")";
+}
+
+}}}}} // namespace


[05/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
new file mode 100644
index 0000000..bab4802
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
@@ -0,0 +1,1169 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.userresourceprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * User Resource Profile
+ * 
+ * userId:
+ * Unique identifier used to link user to corresponding user data model
+ * 
+ * gatewayID:
+ *  Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
+ * 
+ * credentialStoreToken:
+ *  Gateway's defualt credential store token.
+ * 
+ * computeResourcePreferences:
+ *  List of resource preferences for each of the registered compute resources.
+ * 
+ *  identityServerTenant:
+ * 
+ *  identityServerPwdCredToken:
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class UserResourceProfile implements org.apache.thrift.TBase<UserResourceProfile, UserResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserResourceProfile> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserResourceProfile");
+
+  private static final org.apache.thrift.protocol.TField USER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("userId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayID", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("credentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField USER_COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("userComputeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField USER_STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("userStoragePreferences", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_TENANT_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerTenant", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_PWD_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerPwdCredToken", org.apache.thrift.protocol.TType.STRING, (short)7);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserResourceProfileStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserResourceProfileTupleSchemeFactory());
+  }
+
+  private String userId; // required
+  private String gatewayID; // required
+  private String credentialStoreToken; // optional
+  private List<UserComputeResourcePreference> userComputeResourcePreferences; // optional
+  private List<UserStoragePreference> userStoragePreferences; // optional
+  private String identityServerTenant; // optional
+  private String identityServerPwdCredToken; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    USER_ID((short)1, "userId"),
+    GATEWAY_ID((short)2, "gatewayID"),
+    CREDENTIAL_STORE_TOKEN((short)3, "credentialStoreToken"),
+    USER_COMPUTE_RESOURCE_PREFERENCES((short)4, "userComputeResourcePreferences"),
+    USER_STORAGE_PREFERENCES((short)5, "userStoragePreferences"),
+    IDENTITY_SERVER_TENANT((short)6, "identityServerTenant"),
+    IDENTITY_SERVER_PWD_CRED_TOKEN((short)7, "identityServerPwdCredToken");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : 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: // USER_ID
+          return USER_ID;
+        case 2: // GATEWAY_ID
+          return GATEWAY_ID;
+        case 3: // CREDENTIAL_STORE_TOKEN
+          return CREDENTIAL_STORE_TOKEN;
+        case 4: // USER_COMPUTE_RESOURCE_PREFERENCES
+          return USER_COMPUTE_RESOURCE_PREFERENCES;
+        case 5: // USER_STORAGE_PREFERENCES
+          return USER_STORAGE_PREFERENCES;
+        case 6: // IDENTITY_SERVER_TENANT
+          return IDENTITY_SERVER_TENANT;
+        case 7: // IDENTITY_SERVER_PWD_CRED_TOKEN
+          return IDENTITY_SERVER_PWD_CRED_TOKEN;
+        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!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.USER_COMPUTE_RESOURCE_PREFERENCES,_Fields.USER_STORAGE_PREFERENCES,_Fields.IDENTITY_SERVER_TENANT,_Fields.IDENTITY_SERVER_PWD_CRED_TOKEN};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.USER_ID, new org.apache.thrift.meta_data.FieldMetaData("userId", 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)));
+    tmpMap.put(_Fields.CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("credentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.USER_COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("userComputeResourcePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserComputeResourcePreference.class))));
+    tmpMap.put(_Fields.USER_STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("userStoragePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserStoragePreference.class))));
+    tmpMap.put(_Fields.IDENTITY_SERVER_TENANT, new org.apache.thrift.meta_data.FieldMetaData("identityServerTenant", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IDENTITY_SERVER_PWD_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("identityServerPwdCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserResourceProfile.class, metaDataMap);
+  }
+
+  public UserResourceProfile() {
+  }
+
+  public UserResourceProfile(
+    String userId,
+    String gatewayID)
+  {
+    this();
+    this.userId = userId;
+    this.gatewayID = gatewayID;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UserResourceProfile(UserResourceProfile other) {
+    if (other.isSetUserId()) {
+      this.userId = other.userId;
+    }
+    if (other.isSetGatewayID()) {
+      this.gatewayID = other.gatewayID;
+    }
+    if (other.isSetCredentialStoreToken()) {
+      this.credentialStoreToken = other.credentialStoreToken;
+    }
+    if (other.isSetUserComputeResourcePreferences()) {
+      List<UserComputeResourcePreference> __this__userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(other.userComputeResourcePreferences.size());
+      for (UserComputeResourcePreference other_element : other.userComputeResourcePreferences) {
+        __this__userComputeResourcePreferences.add(new UserComputeResourcePreference(other_element));
+      }
+      this.userComputeResourcePreferences = __this__userComputeResourcePreferences;
+    }
+    if (other.isSetUserStoragePreferences()) {
+      List<UserStoragePreference> __this__userStoragePreferences = new ArrayList<UserStoragePreference>(other.userStoragePreferences.size());
+      for (UserStoragePreference other_element : other.userStoragePreferences) {
+        __this__userStoragePreferences.add(new UserStoragePreference(other_element));
+      }
+      this.userStoragePreferences = __this__userStoragePreferences;
+    }
+    if (other.isSetIdentityServerTenant()) {
+      this.identityServerTenant = other.identityServerTenant;
+    }
+    if (other.isSetIdentityServerPwdCredToken()) {
+      this.identityServerPwdCredToken = other.identityServerPwdCredToken;
+    }
+  }
+
+  public UserResourceProfile deepCopy() {
+    return new UserResourceProfile(this);
+  }
+
+  @Override
+  public void clear() {
+    this.userId = null;
+    this.gatewayID = null;
+    this.credentialStoreToken = null;
+    this.userComputeResourcePreferences = null;
+    this.userStoragePreferences = null;
+    this.identityServerTenant = null;
+    this.identityServerPwdCredToken = null;
+  }
+
+  public String getUserId() {
+    return this.userId;
+  }
+
+  public void setUserId(String userId) {
+    this.userId = userId;
+  }
+
+  public void unsetUserId() {
+    this.userId = null;
+  }
+
+  /** Returns true if field userId is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserId() {
+    return this.userId != null;
+  }
+
+  public void setUserIdIsSet(boolean value) {
+    if (!value) {
+      this.userId = null;
+    }
+  }
+
+  public String getGatewayID() {
+    return this.gatewayID;
+  }
+
+  public void setGatewayID(String gatewayID) {
+    this.gatewayID = gatewayID;
+  }
+
+  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 String getCredentialStoreToken() {
+    return this.credentialStoreToken;
+  }
+
+  public void setCredentialStoreToken(String credentialStoreToken) {
+    this.credentialStoreToken = credentialStoreToken;
+  }
+
+  public void unsetCredentialStoreToken() {
+    this.credentialStoreToken = null;
+  }
+
+  /** Returns true if field credentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetCredentialStoreToken() {
+    return this.credentialStoreToken != null;
+  }
+
+  public void setCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.credentialStoreToken = null;
+    }
+  }
+
+  public int getUserComputeResourcePreferencesSize() {
+    return (this.userComputeResourcePreferences == null) ? 0 : this.userComputeResourcePreferences.size();
+  }
+
+  public java.util.Iterator<UserComputeResourcePreference> getUserComputeResourcePreferencesIterator() {
+    return (this.userComputeResourcePreferences == null) ? null : this.userComputeResourcePreferences.iterator();
+  }
+
+  public void addToUserComputeResourcePreferences(UserComputeResourcePreference elem) {
+    if (this.userComputeResourcePreferences == null) {
+      this.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>();
+    }
+    this.userComputeResourcePreferences.add(elem);
+  }
+
+  public List<UserComputeResourcePreference> getUserComputeResourcePreferences() {
+    return this.userComputeResourcePreferences;
+  }
+
+  public void setUserComputeResourcePreferences(List<UserComputeResourcePreference> userComputeResourcePreferences) {
+    this.userComputeResourcePreferences = userComputeResourcePreferences;
+  }
+
+  public void unsetUserComputeResourcePreferences() {
+    this.userComputeResourcePreferences = null;
+  }
+
+  /** Returns true if field userComputeResourcePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserComputeResourcePreferences() {
+    return this.userComputeResourcePreferences != null;
+  }
+
+  public void setUserComputeResourcePreferencesIsSet(boolean value) {
+    if (!value) {
+      this.userComputeResourcePreferences = null;
+    }
+  }
+
+  public int getUserStoragePreferencesSize() {
+    return (this.userStoragePreferences == null) ? 0 : this.userStoragePreferences.size();
+  }
+
+  public java.util.Iterator<UserStoragePreference> getUserStoragePreferencesIterator() {
+    return (this.userStoragePreferences == null) ? null : this.userStoragePreferences.iterator();
+  }
+
+  public void addToUserStoragePreferences(UserStoragePreference elem) {
+    if (this.userStoragePreferences == null) {
+      this.userStoragePreferences = new ArrayList<UserStoragePreference>();
+    }
+    this.userStoragePreferences.add(elem);
+  }
+
+  public List<UserStoragePreference> getUserStoragePreferences() {
+    return this.userStoragePreferences;
+  }
+
+  public void setUserStoragePreferences(List<UserStoragePreference> userStoragePreferences) {
+    this.userStoragePreferences = userStoragePreferences;
+  }
+
+  public void unsetUserStoragePreferences() {
+    this.userStoragePreferences = null;
+  }
+
+  /** Returns true if field userStoragePreferences is set (has been assigned a value) and false otherwise */
+  public boolean isSetUserStoragePreferences() {
+    return this.userStoragePreferences != null;
+  }
+
+  public void setUserStoragePreferencesIsSet(boolean value) {
+    if (!value) {
+      this.userStoragePreferences = null;
+    }
+  }
+
+  public String getIdentityServerTenant() {
+    return this.identityServerTenant;
+  }
+
+  public void setIdentityServerTenant(String identityServerTenant) {
+    this.identityServerTenant = identityServerTenant;
+  }
+
+  public void unsetIdentityServerTenant() {
+    this.identityServerTenant = null;
+  }
+
+  /** Returns true if field identityServerTenant is set (has been assigned a value) and false otherwise */
+  public boolean isSetIdentityServerTenant() {
+    return this.identityServerTenant != null;
+  }
+
+  public void setIdentityServerTenantIsSet(boolean value) {
+    if (!value) {
+      this.identityServerTenant = null;
+    }
+  }
+
+  public String getIdentityServerPwdCredToken() {
+    return this.identityServerPwdCredToken;
+  }
+
+  public void setIdentityServerPwdCredToken(String identityServerPwdCredToken) {
+    this.identityServerPwdCredToken = identityServerPwdCredToken;
+  }
+
+  public void unsetIdentityServerPwdCredToken() {
+    this.identityServerPwdCredToken = null;
+  }
+
+  /** Returns true if field identityServerPwdCredToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetIdentityServerPwdCredToken() {
+    return this.identityServerPwdCredToken != null;
+  }
+
+  public void setIdentityServerPwdCredTokenIsSet(boolean value) {
+    if (!value) {
+      this.identityServerPwdCredToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case USER_ID:
+      if (value == null) {
+        unsetUserId();
+      } else {
+        setUserId((String)value);
+      }
+      break;
+
+    case GATEWAY_ID:
+      if (value == null) {
+        unsetGatewayID();
+      } else {
+        setGatewayID((String)value);
+      }
+      break;
+
+    case CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetCredentialStoreToken();
+      } else {
+        setCredentialStoreToken((String)value);
+      }
+      break;
+
+    case USER_COMPUTE_RESOURCE_PREFERENCES:
+      if (value == null) {
+        unsetUserComputeResourcePreferences();
+      } else {
+        setUserComputeResourcePreferences((List<UserComputeResourcePreference>)value);
+      }
+      break;
+
+    case USER_STORAGE_PREFERENCES:
+      if (value == null) {
+        unsetUserStoragePreferences();
+      } else {
+        setUserStoragePreferences((List<UserStoragePreference>)value);
+      }
+      break;
+
+    case IDENTITY_SERVER_TENANT:
+      if (value == null) {
+        unsetIdentityServerTenant();
+      } else {
+        setIdentityServerTenant((String)value);
+      }
+      break;
+
+    case IDENTITY_SERVER_PWD_CRED_TOKEN:
+      if (value == null) {
+        unsetIdentityServerPwdCredToken();
+      } else {
+        setIdentityServerPwdCredToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case USER_ID:
+      return getUserId();
+
+    case GATEWAY_ID:
+      return getGatewayID();
+
+    case CREDENTIAL_STORE_TOKEN:
+      return getCredentialStoreToken();
+
+    case USER_COMPUTE_RESOURCE_PREFERENCES:
+      return getUserComputeResourcePreferences();
+
+    case USER_STORAGE_PREFERENCES:
+      return getUserStoragePreferences();
+
+    case IDENTITY_SERVER_TENANT:
+      return getIdentityServerTenant();
+
+    case IDENTITY_SERVER_PWD_CRED_TOKEN:
+      return getIdentityServerPwdCredToken();
+
+    }
+    throw new 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();
+    }
+
+    switch (field) {
+    case USER_ID:
+      return isSetUserId();
+    case GATEWAY_ID:
+      return isSetGatewayID();
+    case CREDENTIAL_STORE_TOKEN:
+      return isSetCredentialStoreToken();
+    case USER_COMPUTE_RESOURCE_PREFERENCES:
+      return isSetUserComputeResourcePreferences();
+    case USER_STORAGE_PREFERENCES:
+      return isSetUserStoragePreferences();
+    case IDENTITY_SERVER_TENANT:
+      return isSetIdentityServerTenant();
+    case IDENTITY_SERVER_PWD_CRED_TOKEN:
+      return isSetIdentityServerPwdCredToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UserResourceProfile)
+      return this.equals((UserResourceProfile)that);
+    return false;
+  }
+
+  public boolean equals(UserResourceProfile that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_userId = true && this.isSetUserId();
+    boolean that_present_userId = true && that.isSetUserId();
+    if (this_present_userId || that_present_userId) {
+      if (!(this_present_userId && that_present_userId))
+        return false;
+      if (!this.userId.equals(that.userId))
+        return false;
+    }
+
+    boolean this_present_gatewayID = true && this.isSetGatewayID();
+    boolean that_present_gatewayID = true && that.isSetGatewayID();
+    if (this_present_gatewayID || that_present_gatewayID) {
+      if (!(this_present_gatewayID && that_present_gatewayID))
+        return false;
+      if (!this.gatewayID.equals(that.gatewayID))
+        return false;
+    }
+
+    boolean this_present_credentialStoreToken = true && this.isSetCredentialStoreToken();
+    boolean that_present_credentialStoreToken = true && that.isSetCredentialStoreToken();
+    if (this_present_credentialStoreToken || that_present_credentialStoreToken) {
+      if (!(this_present_credentialStoreToken && that_present_credentialStoreToken))
+        return false;
+      if (!this.credentialStoreToken.equals(that.credentialStoreToken))
+        return false;
+    }
+
+    boolean this_present_userComputeResourcePreferences = true && this.isSetUserComputeResourcePreferences();
+    boolean that_present_userComputeResourcePreferences = true && that.isSetUserComputeResourcePreferences();
+    if (this_present_userComputeResourcePreferences || that_present_userComputeResourcePreferences) {
+      if (!(this_present_userComputeResourcePreferences && that_present_userComputeResourcePreferences))
+        return false;
+      if (!this.userComputeResourcePreferences.equals(that.userComputeResourcePreferences))
+        return false;
+    }
+
+    boolean this_present_userStoragePreferences = true && this.isSetUserStoragePreferences();
+    boolean that_present_userStoragePreferences = true && that.isSetUserStoragePreferences();
+    if (this_present_userStoragePreferences || that_present_userStoragePreferences) {
+      if (!(this_present_userStoragePreferences && that_present_userStoragePreferences))
+        return false;
+      if (!this.userStoragePreferences.equals(that.userStoragePreferences))
+        return false;
+    }
+
+    boolean this_present_identityServerTenant = true && this.isSetIdentityServerTenant();
+    boolean that_present_identityServerTenant = true && that.isSetIdentityServerTenant();
+    if (this_present_identityServerTenant || that_present_identityServerTenant) {
+      if (!(this_present_identityServerTenant && that_present_identityServerTenant))
+        return false;
+      if (!this.identityServerTenant.equals(that.identityServerTenant))
+        return false;
+    }
+
+    boolean this_present_identityServerPwdCredToken = true && this.isSetIdentityServerPwdCredToken();
+    boolean that_present_identityServerPwdCredToken = true && that.isSetIdentityServerPwdCredToken();
+    if (this_present_identityServerPwdCredToken || that_present_identityServerPwdCredToken) {
+      if (!(this_present_identityServerPwdCredToken && that_present_identityServerPwdCredToken))
+        return false;
+      if (!this.identityServerPwdCredToken.equals(that.identityServerPwdCredToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_userId = true && (isSetUserId());
+    list.add(present_userId);
+    if (present_userId)
+      list.add(userId);
+
+    boolean present_gatewayID = true && (isSetGatewayID());
+    list.add(present_gatewayID);
+    if (present_gatewayID)
+      list.add(gatewayID);
+
+    boolean present_credentialStoreToken = true && (isSetCredentialStoreToken());
+    list.add(present_credentialStoreToken);
+    if (present_credentialStoreToken)
+      list.add(credentialStoreToken);
+
+    boolean present_userComputeResourcePreferences = true && (isSetUserComputeResourcePreferences());
+    list.add(present_userComputeResourcePreferences);
+    if (present_userComputeResourcePreferences)
+      list.add(userComputeResourcePreferences);
+
+    boolean present_userStoragePreferences = true && (isSetUserStoragePreferences());
+    list.add(present_userStoragePreferences);
+    if (present_userStoragePreferences)
+      list.add(userStoragePreferences);
+
+    boolean present_identityServerTenant = true && (isSetIdentityServerTenant());
+    list.add(present_identityServerTenant);
+    if (present_identityServerTenant)
+      list.add(identityServerTenant);
+
+    boolean present_identityServerPwdCredToken = true && (isSetIdentityServerPwdCredToken());
+    list.add(present_identityServerPwdCredToken);
+    if (present_identityServerPwdCredToken)
+      list.add(identityServerPwdCredToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UserResourceProfile other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetUserId()).compareTo(other.isSetUserId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userId, other.userId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetGatewayID()).compareTo(other.isSetGatewayID());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetGatewayID()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayID, other.gatewayID);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetCredentialStoreToken()).compareTo(other.isSetCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentialStoreToken, other.credentialStoreToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserComputeResourcePreferences()).compareTo(other.isSetUserComputeResourcePreferences());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserComputeResourcePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userComputeResourcePreferences, other.userComputeResourcePreferences);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetUserStoragePreferences()).compareTo(other.isSetUserStoragePreferences());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetUserStoragePreferences()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userStoragePreferences, other.userStoragePreferences);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIdentityServerTenant()).compareTo(other.isSetIdentityServerTenant());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIdentityServerTenant()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerTenant, other.identityServerTenant);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetIdentityServerPwdCredToken()).compareTo(other.isSetIdentityServerPwdCredToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIdentityServerPwdCredToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerPwdCredToken, other.identityServerPwdCredToken);
+      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);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("UserResourceProfile(");
+    boolean first = true;
+
+    sb.append("userId:");
+    if (this.userId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.userId);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("gatewayID:");
+    if (this.gatewayID == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.gatewayID);
+    }
+    first = false;
+    if (isSetCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("credentialStoreToken:");
+      if (this.credentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.credentialStoreToken);
+      }
+      first = false;
+    }
+    if (isSetUserComputeResourcePreferences()) {
+      if (!first) sb.append(", ");
+      sb.append("userComputeResourcePreferences:");
+      if (this.userComputeResourcePreferences == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userComputeResourcePreferences);
+      }
+      first = false;
+    }
+    if (isSetUserStoragePreferences()) {
+      if (!first) sb.append(", ");
+      sb.append("userStoragePreferences:");
+      if (this.userStoragePreferences == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userStoragePreferences);
+      }
+      first = false;
+    }
+    if (isSetIdentityServerTenant()) {
+      if (!first) sb.append(", ");
+      sb.append("identityServerTenant:");
+      if (this.identityServerTenant == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.identityServerTenant);
+      }
+      first = false;
+    }
+    if (isSetIdentityServerPwdCredToken()) {
+      if (!first) sb.append(", ");
+      sb.append("identityServerPwdCredToken:");
+      if (this.identityServerPwdCredToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.identityServerPwdCredToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetUserId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userId' is unset! Struct:" + toString());
+    }
+
+    if (!isSetGatewayID()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayID' is unset! Struct:" + toString());
+    }
+
+    // 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 {
+    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 UserResourceProfileStandardSchemeFactory implements SchemeFactory {
+    public UserResourceProfileStandardScheme getScheme() {
+      return new UserResourceProfileStandardScheme();
+    }
+  }
+
+  private static class UserResourceProfileStandardScheme extends StandardScheme<UserResourceProfile> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UserResourceProfile 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: // USER_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.userId = iprot.readString();
+              struct.setUserIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // GATEWAY_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.gatewayID = iprot.readString();
+              struct.setGatewayIDIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.credentialStoreToken = iprot.readString();
+              struct.setCredentialStoreTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // USER_COMPUTE_RESOURCE_PREFERENCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+                struct.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(_list0.size);
+                UserComputeResourcePreference _elem1;
+                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+                {
+                  _elem1 = new UserComputeResourcePreference();
+                  _elem1.read(iprot);
+                  struct.userComputeResourcePreferences.add(_elem1);
+                }
+                iprot.readListEnd();
+              }
+              struct.setUserComputeResourcePreferencesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // USER_STORAGE_PREFERENCES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
+                struct.userStoragePreferences = new ArrayList<UserStoragePreference>(_list3.size);
+                UserStoragePreference _elem4;
+                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+                {
+                  _elem4 = new UserStoragePreference();
+                  _elem4.read(iprot);
+                  struct.userStoragePreferences.add(_elem4);
+                }
+                iprot.readListEnd();
+              }
+              struct.setUserStoragePreferencesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // IDENTITY_SERVER_TENANT
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.identityServerTenant = iprot.readString();
+              struct.setIdentityServerTenantIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // IDENTITY_SERVER_PWD_CRED_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.identityServerPwdCredToken = iprot.readString();
+              struct.setIdentityServerPwdCredTokenIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UserResourceProfile struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.userId != null) {
+        oprot.writeFieldBegin(USER_ID_FIELD_DESC);
+        oprot.writeString(struct.userId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.gatewayID != null) {
+        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+        oprot.writeString(struct.gatewayID);
+        oprot.writeFieldEnd();
+      }
+      if (struct.credentialStoreToken != null) {
+        if (struct.isSetCredentialStoreToken()) {
+          oprot.writeFieldBegin(CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.credentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.userComputeResourcePreferences != null) {
+        if (struct.isSetUserComputeResourcePreferences()) {
+          oprot.writeFieldBegin(USER_COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.userComputeResourcePreferences.size()));
+            for (UserComputeResourcePreference _iter6 : struct.userComputeResourcePreferences)
+            {
+              _iter6.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.userStoragePreferences != null) {
+        if (struct.isSetUserStoragePreferences()) {
+          oprot.writeFieldBegin(USER_STORAGE_PREFERENCES_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.userStoragePreferences.size()));
+            for (UserStoragePreference _iter7 : struct.userStoragePreferences)
+            {
+              _iter7.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.identityServerTenant != null) {
+        if (struct.isSetIdentityServerTenant()) {
+          oprot.writeFieldBegin(IDENTITY_SERVER_TENANT_FIELD_DESC);
+          oprot.writeString(struct.identityServerTenant);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.identityServerPwdCredToken != null) {
+        if (struct.isSetIdentityServerPwdCredToken()) {
+          oprot.writeFieldBegin(IDENTITY_SERVER_PWD_CRED_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.identityServerPwdCredToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserResourceProfileTupleSchemeFactory implements SchemeFactory {
+    public UserResourceProfileTupleScheme getScheme() {
+      return new UserResourceProfileTupleScheme();
+    }
+  }
+
+  private static class UserResourceProfileTupleScheme extends TupleScheme<UserResourceProfile> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UserResourceProfile struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.userId);
+      oprot.writeString(struct.gatewayID);
+      BitSet optionals = new BitSet();
+      if (struct.isSetCredentialStoreToken()) {
+        optionals.set(0);
+      }
+      if (struct.isSetUserComputeResourcePreferences()) {
+        optionals.set(1);
+      }
+      if (struct.isSetUserStoragePreferences()) {
+        optionals.set(2);
+      }
+      if (struct.isSetIdentityServerTenant()) {
+        optionals.set(3);
+      }
+      if (struct.isSetIdentityServerPwdCredToken()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetCredentialStoreToken()) {
+        oprot.writeString(struct.credentialStoreToken);
+      }
+      if (struct.isSetUserComputeResourcePreferences()) {
+        {
+          oprot.writeI32(struct.userComputeResourcePreferences.size());
+          for (UserComputeResourcePreference _iter8 : struct.userComputeResourcePreferences)
+          {
+            _iter8.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetUserStoragePreferences()) {
+        {
+          oprot.writeI32(struct.userStoragePreferences.size());
+          for (UserStoragePreference _iter9 : struct.userStoragePreferences)
+          {
+            _iter9.write(oprot);
+          }
+        }
+      }
+      if (struct.isSetIdentityServerTenant()) {
+        oprot.writeString(struct.identityServerTenant);
+      }
+      if (struct.isSetIdentityServerPwdCredToken()) {
+        oprot.writeString(struct.identityServerPwdCredToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UserResourceProfile struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.userId = iprot.readString();
+      struct.setUserIdIsSet(true);
+      struct.gatewayID = iprot.readString();
+      struct.setGatewayIDIsSet(true);
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.credentialStoreToken = iprot.readString();
+        struct.setCredentialStoreTokenIsSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(_list10.size);
+          UserComputeResourcePreference _elem11;
+          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+          {
+            _elem11 = new UserComputeResourcePreference();
+            _elem11.read(iprot);
+            struct.userComputeResourcePreferences.add(_elem11);
+          }
+        }
+        struct.setUserComputeResourcePreferencesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.userStoragePreferences = new ArrayList<UserStoragePreference>(_list13.size);
+          UserStoragePreference _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = new UserStoragePreference();
+            _elem14.read(iprot);
+            struct.userStoragePreferences.add(_elem14);
+          }
+        }
+        struct.setUserStoragePreferencesIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.identityServerTenant = iprot.readString();
+        struct.setIdentityServerTenantIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.identityServerPwdCredToken = iprot.readString();
+        struct.setIdentityServerPwdCredTokenIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
new file mode 100644
index 0000000..daa5df2
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
@@ -0,0 +1,728 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.userresourceprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class UserStoragePreference implements org.apache.thrift.TBase<UserStoragePreference, UserStoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserStoragePreference> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserStoragePreference");
+
+  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSystemRootLocation", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)4);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserStoragePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserStoragePreferenceTupleSchemeFactory());
+  }
+
+  private String storageResourceId; // required
+  private String loginUserName; // optional
+  private String fileSystemRootLocation; // optional
+  private String resourceSpecificCredentialStoreToken; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    STORAGE_RESOURCE_ID((short)1, "storageResourceId"),
+    LOGIN_USER_NAME((short)2, "loginUserName"),
+    FILE_SYSTEM_ROOT_LOCATION((short)3, "fileSystemRootLocation"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)4, "resourceSpecificCredentialStoreToken");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : 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: // STORAGE_RESOURCE_ID
+          return STORAGE_RESOURCE_ID;
+        case 2: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 3: // FILE_SYSTEM_ROOT_LOCATION
+          return FILE_SYSTEM_ROOT_LOCATION;
+        case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        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!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.FILE_SYSTEM_ROOT_LOCATION,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.FILE_SYSTEM_ROOT_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("fileSystemRootLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserStoragePreference.class, metaDataMap);
+  }
+
+  public UserStoragePreference() {
+  }
+
+  public UserStoragePreference(
+    String storageResourceId)
+  {
+    this();
+    this.storageResourceId = storageResourceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UserStoragePreference(UserStoragePreference other) {
+    if (other.isSetStorageResourceId()) {
+      this.storageResourceId = other.storageResourceId;
+    }
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetFileSystemRootLocation()) {
+      this.fileSystemRootLocation = other.fileSystemRootLocation;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
+  }
+
+  public UserStoragePreference deepCopy() {
+    return new UserStoragePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.storageResourceId = null;
+    this.loginUserName = null;
+    this.fileSystemRootLocation = null;
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  public String getStorageResourceId() {
+    return this.storageResourceId;
+  }
+
+  public void setStorageResourceId(String storageResourceId) {
+    this.storageResourceId = storageResourceId;
+  }
+
+  public void unsetStorageResourceId() {
+    this.storageResourceId = null;
+  }
+
+  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetStorageResourceId() {
+    return this.storageResourceId != null;
+  }
+
+  public void setStorageResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.storageResourceId = null;
+    }
+  }
+
+  public String getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public void setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  public String getFileSystemRootLocation() {
+    return this.fileSystemRootLocation;
+  }
+
+  public void setFileSystemRootLocation(String fileSystemRootLocation) {
+    this.fileSystemRootLocation = fileSystemRootLocation;
+  }
+
+  public void unsetFileSystemRootLocation() {
+    this.fileSystemRootLocation = null;
+  }
+
+  /** Returns true if field fileSystemRootLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetFileSystemRootLocation() {
+    return this.fileSystemRootLocation != null;
+  }
+
+  public void setFileSystemRootLocationIsSet(boolean value) {
+    if (!value) {
+      this.fileSystemRootLocation = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public void setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      if (value == null) {
+        unsetStorageResourceId();
+      } else {
+        setStorageResourceId((String)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      if (value == null) {
+        unsetFileSystemRootLocation();
+      } else {
+        setFileSystemRootLocation((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      return getStorageResourceId();
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return getFileSystemRootLocation();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    }
+    throw new 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();
+    }
+
+    switch (field) {
+    case STORAGE_RESOURCE_ID:
+      return isSetStorageResourceId();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case FILE_SYSTEM_ROOT_LOCATION:
+      return isSetFileSystemRootLocation();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UserStoragePreference)
+      return this.equals((UserStoragePreference)that);
+    return false;
+  }
+
+  public boolean equals(UserStoragePreference that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
+    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
+    if (this_present_storageResourceId || that_present_storageResourceId) {
+      if (!(this_present_storageResourceId && that_present_storageResourceId))
+        return false;
+      if (!this.storageResourceId.equals(that.storageResourceId))
+        return false;
+    }
+
+    boolean this_present_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_fileSystemRootLocation = true && this.isSetFileSystemRootLocation();
+    boolean that_present_fileSystemRootLocation = true && that.isSetFileSystemRootLocation();
+    if (this_present_fileSystemRootLocation || that_present_fileSystemRootLocation) {
+      if (!(this_present_fileSystemRootLocation && that_present_fileSystemRootLocation))
+        return false;
+      if (!this.fileSystemRootLocation.equals(that.fileSystemRootLocation))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_storageResourceId = true && (isSetStorageResourceId());
+    list.add(present_storageResourceId);
+    if (present_storageResourceId)
+      list.add(storageResourceId);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_fileSystemRootLocation = true && (isSetFileSystemRootLocation());
+    list.add(present_fileSystemRootLocation);
+    if (present_fileSystemRootLocation)
+      list.add(fileSystemRootLocation);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UserStoragePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetStorageResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetFileSystemRootLocation()).compareTo(other.isSetFileSystemRootLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetFileSystemRootLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSystemRootLocation, other.fileSystemRootLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
+      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);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("UserStoragePreference(");
+    boolean first = true;
+
+    sb.append("storageResourceId:");
+    if (this.storageResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.storageResourceId);
+    }
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetFileSystemRootLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("fileSystemRootLocation:");
+      if (this.fileSystemRootLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.fileSystemRootLocation);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetStorageResourceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'storageResourceId' is unset! Struct:" + toString());
+    }
+
+    // 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 {
+    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 UserStoragePreferenceStandardSchemeFactory implements SchemeFactory {
+    public UserStoragePreferenceStandardScheme getScheme() {
+      return new UserStoragePreferenceStandardScheme();
+    }
+  }
+
+  private static class UserStoragePreferenceStandardScheme extends StandardScheme<UserStoragePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UserStoragePreference 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: // STORAGE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.storageResourceId = iprot.readString();
+              struct.setStorageResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // FILE_SYSTEM_ROOT_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.fileSystemRootLocation = iprot.readString();
+              struct.setFileSystemRootLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UserStoragePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.storageResourceId != null) {
+        oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.storageResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.fileSystemRootLocation != null) {
+        if (struct.isSetFileSystemRootLocation()) {
+          oprot.writeFieldBegin(FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.fileSystemRootLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserStoragePreferenceTupleSchemeFactory implements SchemeFactory {
+    public UserStoragePreferenceTupleScheme getScheme() {
+      return new UserStoragePreferenceTupleScheme();
+    }
+  }
+
+  private static class UserStoragePreferenceTupleScheme extends TupleScheme<UserStoragePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UserStoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.storageResourceId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        optionals.set(1);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetFileSystemRootLocation()) {
+        oprot.writeString(struct.fileSystemRootLocation);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UserStoragePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.storageResourceId = iprot.readString();
+      struct.setStorageResourceIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.fileSystemRootLocation = iprot.readString();
+        struct.setFileSystemRootLocationIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index d14c50e..9553b0c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -23,15 +23,32 @@
  */
 package org.apache.airavata.model.job;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
@@ -43,7 +60,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
   private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField JOB_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("jobDescription", org.apache.thrift.protocol.TType.STRING, (short)4);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)5);
-  private static final org.apache.thrift.protocol.TField JOB_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
+  private static final org.apache.thrift.protocol.TField JOB_STATUSES_FIELD_DESC = new org.apache.thrift.protocol.TField("jobStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
   private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_CONSUMED_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceConsumed", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField JOB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("jobName", org.apache.thrift.protocol.TType.STRING, (short)8);
   private static final org.apache.thrift.protocol.TField WORKING_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("workingDir", org.apache.thrift.protocol.TType.STRING, (short)9);
@@ -77,7 +94,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     PROCESS_ID((short)3, "processId"),
     JOB_DESCRIPTION((short)4, "jobDescription"),
     CREATION_TIME((short)5, "creationTime"),
-    JOB_STATUS((short)6, "jobStatuses"),
+    JOB_STATUSES((short)6, "jobStatuses"),
     COMPUTE_RESOURCE_CONSUMED((short)7, "computeResourceConsumed"),
     JOB_NAME((short)8, "jobName"),
     WORKING_DIR((short)9, "workingDir"),
@@ -108,8 +125,8 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
           return JOB_DESCRIPTION;
         case 5: // CREATION_TIME
           return CREATION_TIME;
-        case 6: // JOB_STATUS
-          return JOB_STATUS;
+        case 6: // JOB_STATUSES
+          return JOB_STATUSES;
         case 7: // COMPUTE_RESOURCE_CONSUMED
           return COMPUTE_RESOURCE_CONSUMED;
         case 8: // JOB_NAME
@@ -165,7 +182,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
   private static final int __CREATIONTIME_ISSET_ID = 0;
   private static final int __EXITCODE_ISSET_ID = 1;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.JOB_STATUS,_Fields.COMPUTE_RESOURCE_CONSUMED,_Fields.JOB_NAME,_Fields.WORKING_DIR,_Fields.STD_OUT,_Fields.STD_ERR,_Fields.EXIT_CODE};
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.JOB_STATUSES,_Fields.COMPUTE_RESOURCE_CONSUMED,_Fields.JOB_NAME,_Fields.WORKING_DIR,_Fields.STD_OUT,_Fields.STD_ERR,_Fields.EXIT_CODE};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -179,7 +196,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CREATION_TIME, new org.apache.thrift.meta_data.FieldMetaData("creationTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.JOB_STATUS, new org.apache.thrift.meta_data.FieldMetaData("jobStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.JOB_STATUSES, new org.apache.thrift.meta_data.FieldMetaData("jobStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.JobStatus.class))));
     tmpMap.put(_Fields.COMPUTE_RESOURCE_CONSUMED, new org.apache.thrift.meta_data.FieldMetaData("computeResourceConsumed", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -232,12 +249,12 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       this.jobDescription = other.jobDescription;
     }
     this.creationTime = other.creationTime;
-    if (other.isSetJobStatus()) {
-      List<org.apache.airavata.model.status.JobStatus> __this__jobStatus = new ArrayList<org.apache.airavata.model.status.JobStatus>(other.jobStatuses.size());
+    if (other.isSetJobStatuses()) {
+      List<org.apache.airavata.model.status.JobStatus> __this__jobStatuses = new ArrayList<org.apache.airavata.model.status.JobStatus>(other.jobStatuses.size());
       for (org.apache.airavata.model.status.JobStatus other_element : other.jobStatuses) {
-        __this__jobStatus.add(new org.apache.airavata.model.status.JobStatus(other_element));
+        __this__jobStatuses.add(new org.apache.airavata.model.status.JobStatus(other_element));
       }
-      this.jobStatuses = __this__jobStatus;
+      this.jobStatuses = __this__jobStatuses;
     }
     if (other.isSetComputeResourceConsumed()) {
       this.computeResourceConsumed = other.computeResourceConsumed;
@@ -393,15 +410,15 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __CREATIONTIME_ISSET_ID, value);
   }
 
-  public int getJobStatusSize() {
+  public int getJobStatusesSize() {
     return (this.jobStatuses == null) ? 0 : this.jobStatuses.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.status.JobStatus> getJobStatusIterator() {
+  public java.util.Iterator<org.apache.airavata.model.status.JobStatus> getJobStatusesIterator() {
     return (this.jobStatuses == null) ? null : this.jobStatuses.iterator();
   }
 
-  public void addToJobStatus(org.apache.airavata.model.status.JobStatus elem) {
+  public void addToJobStatuses(org.apache.airavata.model.status.JobStatus elem) {
     if (this.jobStatuses == null) {
       this.jobStatuses = new ArrayList<org.apache.airavata.model.status.JobStatus>();
     }
@@ -416,16 +433,16 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     this.jobStatuses = jobStatuses;
   }
 
-  public void unsetJobStatus() {
+  public void unsetJobStatuses() {
     this.jobStatuses = null;
   }
 
   /** Returns true if field jobStatuses is set (has been assigned a value) and false otherwise */
-  public boolean isSetJobStatus() {
+  public boolean isSetJobStatuses() {
     return this.jobStatuses != null;
   }
 
-  public void setJobStatusIsSet(boolean value) {
+  public void setJobStatusesIsSet(boolean value) {
     if (!value) {
       this.jobStatuses = null;
     }
@@ -610,11 +627,11 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       }
       break;
 
-    case JOB_STATUS:
+    case JOB_STATUSES:
       if (value == null) {
-        unsetJobStatus();
+        unsetJobStatuses();
       } else {
-        setJobStatuses((List<org.apache.airavata.model.status.JobStatus>) value);
+        setJobStatuses((List<org.apache.airavata.model.status.JobStatus>)value);
       }
       break;
 
@@ -686,7 +703,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     case CREATION_TIME:
       return getCreationTime();
 
-    case JOB_STATUS:
+    case JOB_STATUSES:
       return getJobStatuses();
 
     case COMPUTE_RESOURCE_CONSUMED:
@@ -728,8 +745,8 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       return isSetJobDescription();
     case CREATION_TIME:
       return isSetCreationTime();
-    case JOB_STATUS:
-      return isSetJobStatus();
+    case JOB_STATUSES:
+      return isSetJobStatuses();
     case COMPUTE_RESOURCE_CONSUMED:
       return isSetComputeResourceConsumed();
     case JOB_NAME:
@@ -804,10 +821,10 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         return false;
     }
 
-    boolean this_present_jobStatus = true && this.isSetJobStatus();
-    boolean that_present_jobStatus = true && that.isSetJobStatus();
-    if (this_present_jobStatus || that_present_jobStatus) {
-      if (!(this_present_jobStatus && that_present_jobStatus))
+    boolean this_present_jobStatuses = true && this.isSetJobStatuses();
+    boolean that_present_jobStatuses = true && that.isSetJobStatuses();
+    if (this_present_jobStatuses || that_present_jobStatuses) {
+      if (!(this_present_jobStatuses && that_present_jobStatuses))
         return false;
       if (!this.jobStatuses.equals(that.jobStatuses))
         return false;
@@ -899,9 +916,9 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
     if (present_creationTime)
       list.add(creationTime);
 
-    boolean present_jobStatus = true && (isSetJobStatus());
-    list.add(present_jobStatus);
-    if (present_jobStatus)
+    boolean present_jobStatuses = true && (isSetJobStatuses());
+    list.add(present_jobStatuses);
+    if (present_jobStatuses)
       list.add(jobStatuses);
 
     boolean present_computeResourceConsumed = true && (isSetComputeResourceConsumed());
@@ -995,11 +1012,11 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetJobStatus()).compareTo(other.isSetJobStatus());
+    lastComparison = Boolean.valueOf(isSetJobStatuses()).compareTo(other.isSetJobStatuses());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetJobStatus()) {
+    if (isSetJobStatuses()) {
       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.jobStatuses, other.jobStatuses);
       if (lastComparison != 0) {
         return lastComparison;
@@ -1122,7 +1139,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       sb.append(this.creationTime);
       first = false;
     }
-    if (isSetJobStatus()) {
+    if (isSetJobStatuses()) {
       if (!first) sb.append(", ");
       sb.append("jobStatuses:");
       if (this.jobStatuses == null) {
@@ -1289,7 +1306,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // JOB_STATUS
+          case 6: // JOB_STATUSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -1303,7 +1320,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
                 }
                 iprot.readListEnd();
               }
-              struct.setJobStatusIsSet(true);
+              struct.setJobStatusesIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -1395,8 +1412,8 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
         oprot.writeFieldEnd();
       }
       if (struct.jobStatuses != null) {
-        if (struct.isSetJobStatus()) {
-          oprot.writeFieldBegin(JOB_STATUS_FIELD_DESC);
+        if (struct.isSetJobStatuses()) {
+          oprot.writeFieldBegin(JOB_STATUSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.jobStatuses.size()));
             for (org.apache.airavata.model.status.JobStatus _iter3 : struct.jobStatuses)
@@ -1473,7 +1490,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       if (struct.isSetCreationTime()) {
         optionals.set(0);
       }
-      if (struct.isSetJobStatus()) {
+      if (struct.isSetJobStatuses()) {
         optionals.set(1);
       }
       if (struct.isSetComputeResourceConsumed()) {
@@ -1498,7 +1515,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
       if (struct.isSetCreationTime()) {
         oprot.writeI64(struct.creationTime);
       }
-      if (struct.isSetJobStatus()) {
+      if (struct.isSetJobStatuses()) {
         {
           oprot.writeI32(struct.jobStatuses.size());
           for (org.apache.airavata.model.status.JobStatus _iter4 : struct.jobStatuses)
@@ -1555,7 +1572,7 @@ public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fie
             struct.jobStatuses.add(_elem6);
           }
         }
-        struct.setJobStatusIsSet(true);
+        struct.setJobStatusesIsSet(true);
       }
       if (incoming.get(2)) {
         struct.computeResourceConsumed = iprot.readString();


[10/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
index ecd0a0b..d649aeb 100644
--- a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
+++ b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-05")
 public class RegistryService {
 
   public interface Iface {
@@ -2231,6 +2231,39 @@ public class RegistryService {
 
     /**
      * 
+     * Fetch all User Compute Resource Preferences of a registered user resource profile.
+     * 
+     * @param userId
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch all User Storage Resource Preferences of a registered user resource profile.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @return StoragePreference
+     *   Returns the StoragePreference object.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
      * Fetch all user resource Profiles registered
      * 
      * @return userResourceProfile
@@ -2627,6 +2660,10 @@ public class RegistryService {
 
     public void getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void getAllUserComputeResourcePreferences(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getAllUserStoragePreferences(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllUserResourceProfiles(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void updateUserComputeResourcePreference(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;
@@ -6018,6 +6055,60 @@ public class RegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserStoragePreference failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getAllUserComputeResourcePreferences(userId, gatewayID);
+      return recv_getAllUserComputeResourcePreferences();
+    }
+
+    public void send_getAllUserComputeResourcePreferences(String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getAllUserComputeResourcePreferences_args args = new getAllUserComputeResourcePreferences_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getAllUserComputeResourcePreferences", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> recv_getAllUserComputeResourcePreferences() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+      receiveBase(result, "getAllUserComputeResourcePreferences");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserComputeResourcePreferences failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getAllUserStoragePreferences(userId, gatewayID);
+      return recv_getAllUserStoragePreferences();
+    }
+
+    public void send_getAllUserStoragePreferences(String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getAllUserStoragePreferences_args args = new getAllUserStoragePreferences_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getAllUserStoragePreferences", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> recv_getAllUserStoragePreferences() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+      receiveBase(result, "getAllUserStoragePreferences");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserStoragePreferences failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
     {
       send_getAllUserResourceProfiles();
@@ -10774,6 +10865,76 @@ public class RegistryService {
       }
     }
 
+    public void getAllUserComputeResourcePreferences(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserComputeResourcePreferences_call method_call = new getAllUserComputeResourcePreferences_call(userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserComputeResourcePreferences_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      public getAllUserComputeResourcePreferences_call(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserComputeResourcePreferences", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserComputeResourcePreferences_args args = new getAllUserComputeResourcePreferences_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getAllUserComputeResourcePreferences();
+      }
+    }
+
+    public void getAllUserStoragePreferences(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserStoragePreferences_call method_call = new getAllUserStoragePreferences_call(userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserStoragePreferences_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      public getAllUserStoragePreferences_call(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserStoragePreferences", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserStoragePreferences_args args = new getAllUserStoragePreferences_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getAllUserStoragePreferences();
+      }
+    }
+
     public void getAllUserResourceProfiles(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllUserResourceProfiles_call method_call = new getAllUserResourceProfiles_call(resultHandler, this, ___protocolFactory, ___transport);
@@ -11489,6 +11650,8 @@ public class RegistryService {
       processMap.put("addUserStoragePreference", new addUserStoragePreference());
       processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
       processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserComputeResourcePreferences", new getAllUserComputeResourcePreferences());
+      processMap.put("getAllUserStoragePreferences", new getAllUserStoragePreferences());
       processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
       processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
       processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
@@ -14556,6 +14719,54 @@ public class RegistryService {
       }
     }
 
+    public static class getAllUserComputeResourcePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserComputeResourcePreferences_args> {
+      public getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
+      }
+
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserComputeResourcePreferences_result getResult(I iface, getAllUserComputeResourcePreferences_args args) throws org.apache.thrift.TException {
+        getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+        try {
+          result.success = iface.getAllUserComputeResourcePreferences(args.userId, args.gatewayID);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllUserStoragePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserStoragePreferences_args> {
+      public getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
+      }
+
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserStoragePreferences_result getResult(I iface, getAllUserStoragePreferences_args args) throws org.apache.thrift.TException {
+        getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+        try {
+          result.success = iface.getAllUserStoragePreferences(args.userId, args.gatewayID);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
     public static class getAllUserResourceProfiles<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserResourceProfiles_args> {
       public getAllUserResourceProfiles() {
         super("getAllUserResourceProfiles");
@@ -15107,6 +15318,8 @@ public class RegistryService {
       processMap.put("addUserStoragePreference", new addUserStoragePreference());
       processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
       processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserComputeResourcePreferences", new getAllUserComputeResourcePreferences());
+      processMap.put("getAllUserStoragePreferences", new getAllUserStoragePreferences());
       processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
       processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
       processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
@@ -22295,20 +22508,20 @@ public class RegistryService {
       }
     }
 
-    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, 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 getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
       }
 
-      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllUserResourceProfiles_args();
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
-          public void onComplete(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) {
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -22321,7 +22534,7 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -22347,27 +22560,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws TException {
-        iface.getAllUserResourceProfiles(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 {
+        iface.getAllUserComputeResourcePreferences(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, 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 getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
       }
 
-      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateUserComputeResourcePreference_args();
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(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) {
+            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;
@@ -22379,7 +22591,7 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+            getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -22405,27 +22617,26 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.updateUserComputeResourcePreference(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 {
+        iface.getAllUserStoragePreferences(args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, 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 getAllUserResourceProfiles() {
+        super("getAllUserResourceProfiles");
       }
 
-      public updateUserStoragePreference_args getEmptyArgsInstance() {
-        return new updateUserStoragePreference_args();
+      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllUserResourceProfiles_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(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) {
+            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;
@@ -22437,7 +22648,7 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+            getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -22463,25 +22674,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.updateUserStoragePreference(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 {
+        iface.getAllUserResourceProfiles(resultHandler);
       }
     }
 
-    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, Boolean> {
-      public deleteUserComputeResourcePreference() {
-        super("deleteUserComputeResourcePreference");
+    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -22495,7 +22706,7 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -22521,25 +22732,25 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference,resultHandler);
       }
     }
 
-    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, Boolean> {
-      public deleteUserStoragePreference() {
-        super("deleteUserStoragePreference");
+    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -22553,7 +22764,7 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -22579,26 +22790,27 @@ public class RegistryService {
         return false;
       }
 
-      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.deleteUserStoragePreference(args.userId, args.gatewayID, args.userStorageId,resultHandler);
+      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.updateUserStoragePreference(args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference,resultHandler);
       }
     }
 
-    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, List<String>> {
-      public getAllWorkflows() {
-        super("getAllWorkflows");
+    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, Boolean> {
+      public deleteUserComputeResourcePreference() {
+        super("deleteUserComputeResourcePreference");
       }
 
-      public getAllWorkflows_args getEmptyArgsInstance() {
-        return new getAllWorkflows_args();
+      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteUserComputeResourcePreference_args();
       }
 
-      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<String>>() { 
-          public void onComplete(List<String> o) {
-            getAllWorkflows_result result = new getAllWorkflows_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(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;
@@ -22610,7 +22822,122 @@ public class RegistryService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllWorkflows_result result = new getAllWorkflows_result();
+            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+                        result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+                        result.setRseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
+      }
+    }
+
+    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, Boolean> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
+      }
+
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_args();
+      }
+
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(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);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
+                        result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
+                        result.setRseIsSet(true);
+                        msg = result;
+            }
+             else 
+            {
+              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());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteUserStoragePreference(args.userId, args.gatewayID, args.userStorageId,resultHandler);
+      }
+    }
+
+    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, List<String>> {
+      public getAllWorkflows() {
+        super("getAllWorkflows");
+      }
+
+      public getAllWorkflows_args getEmptyArgsInstance() {
+        return new getAllWorkflows_args();
+      }
+
+      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<List<String>>() { 
+          public void onComplete(List<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);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            getAllWorkflows_result result = new getAllWorkflows_result();
             if (e instanceof org.apache.airavata.registry.api.exception.RegistryServiceException) {
                         result.rse = (org.apache.airavata.registry.api.exception.RegistryServiceException) e;
                         result.setRseIsSet(true);
@@ -125099,96 +125426,2190 @@ public class RegistryService {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile.class))));
+          new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile.class))));
+      tmpMap.put(_Fields.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", 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(getAllGatewayResourceProfiles_result.class, metaDataMap);
+    }
+
+    public getAllGatewayResourceProfiles_result() {
+    }
+
+    public getAllGatewayResourceProfiles_result(
+      List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> success,
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.success = success;
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public getAllGatewayResourceProfiles_result(getAllGatewayResourceProfiles_result other) {
+      if (other.isSetSuccess()) {
+        List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> __this__success = new ArrayList<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>(other.success.size());
+        for (org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile(other_element));
+        }
+        this.success = __this__success;
+      }
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public getAllGatewayResourceProfiles_result deepCopy() {
+      return new getAllGatewayResourceProfiles_result(this);
+    }
+
+    @Override
+    public void clear() {
+      this.success = null;
+      this.rse = null;
+    }
+
+    public int getSuccessSize() {
+      return (this.success == null) ? 0 : this.success.size();
+    }
+
+    public java.util.Iterator<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> getSuccessIterator() {
+      return (this.success == null) ? null : this.success.iterator();
+    }
+
+    public void addToSuccess(org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile elem) {
+      if (this.success == null) {
+        this.success = new ArrayList<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>();
+      }
+      this.success.add(elem);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> getSuccess() {
+      return this.success;
+    }
+
+    public getAllGatewayResourceProfiles_result setSuccess(List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile> success) {
+      this.success = success;
+      return this;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public getAllGatewayResourceProfiles_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+      this.rse = rse;
+      return this;
+    }
+
+    public void unsetRse() {
+      this.rse = null;
+    }
+
+    /** Returns true if field rse is set (has been assigned a value) and false otherwise */
+    public boolean isSetRse() {
+      return this.rse != null;
+    }
+
+    public void setRseIsSet(boolean value) {
+      if (!value) {
+        this.rse = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((List<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>)value);
+        }
+        break;
+
+      case RSE:
+        if (value == null) {
+          unsetRse();
+        } else {
+          setRse((org.apache.airavata.registry.api.exception.RegistryServiceException)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
+      case RSE:
+        return getRse();
+
+      }
+      throw new 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();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case RSE:
+        return isSetRse();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof getAllGatewayResourceProfiles_result)
+        return this.equals((getAllGatewayResourceProfiles_result)that);
+      return false;
+    }
+
+    public boolean equals(getAllGatewayResourceProfiles_result that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
+      boolean this_present_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_success = true && (isSetSuccess());
+      list.add(present_success);
+      if (present_success)
+        list.add(success);
+
+      boolean present_rse = true && (isSetRse());
+      list.add(present_rse);
+      if (present_rse)
+        list.add(rse);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(getAllGatewayResourceProfiles_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = 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 = Boolean.valueOf(isSetRse()).compareTo(other.isSetRse());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetRse()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rse, other.rse);
+        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);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("getAllGatewayResourceProfiles_result(");
+      boolean first = true;
+
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("rse:");
+      if (this.rse == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.rse);
+      }
+      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 {
+      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 getAllGatewayResourceProfiles_resultStandardSchemeFactory implements SchemeFactory {
+      public getAllGatewayResourceProfiles_resultStandardScheme getScheme() {
+        return new getAllGatewayResourceProfiles_resultStandardScheme();
+      }
+    }
+
+    private static class getAllGatewayResourceProfiles_resultStandardScheme extends StandardScheme<getAllGatewayResourceProfiles_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, getAllGatewayResourceProfiles_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.LIST) {
+                {
+                  org.apache.thrift.protocol.TList _list258 = iprot.readListBegin();
+                  struct.success = new ArrayList<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>(_list258.size);
+                  org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile _elem259;
+                  for (int _i260 = 0; _i260 < _list258.size; ++_i260)
+                  {
+                    _elem259 = new org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile();
+                    _elem259.read(iprot);
+                    struct.success.add(_elem259);
+                  }
+                  iprot.readListEnd();
+                }
+                struct.setSuccessIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 1: // RSE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+                struct.rse.read(iprot);
+                struct.setRseIsSet(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, getAllGatewayResourceProfiles_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          {
+            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+            for (org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile _iter261 : struct.success)
+            {
+              _iter261.write(oprot);
+            }
+            oprot.writeListEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+        if (struct.rse != null) {
+          oprot.writeFieldBegin(RSE_FIELD_DESC);
+          struct.rse.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class getAllGatewayResourceProfiles_resultTupleSchemeFactory implements SchemeFactory {
+      public getAllGatewayResourceProfiles_resultTupleScheme getScheme() {
+        return new getAllGatewayResourceProfiles_resultTupleScheme();
+      }
+    }
+
+    private static class getAllGatewayResourceProfiles_resultTupleScheme extends TupleScheme<getAllGatewayResourceProfiles_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, getAllGatewayResourceProfiles_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        if (struct.isSetRse()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetSuccess()) {
+          {
+            oprot.writeI32(struct.success.size());
+            for (org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile _iter262 : struct.success)
+            {
+              _iter262.write(oprot);
+            }
+          }
+        }
+        if (struct.isSetRse()) {
+          struct.rse.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, getAllGatewayResourceProfiles_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(2);
+        if (incoming.get(0)) {
+          {
+            org.apache.thrift.protocol.TList _list263 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.success = new ArrayList<org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile>(_list263.size);
+            org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile _elem264;
+            for (int _i265 = 0; _i265 < _list263.size; ++_i265)
+            {
+              _elem264 = new org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile();
+              _elem264.read(iprot);
+              struct.success.add(_elem264);
+            }
+          }
+          struct.setSuccessIsSet(true);
+        }
+        if (incoming.get(1)) {
+          struct.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException();
+          struct.rse.read(iprot);
+          struct.setRseIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class updateGatewayComputeResourcePreference_args implements org.apache.thrift.TBase<updateGatewayComputeResourcePreference_args, updateGatewayComputeResourcePreference_args._Fields>, java.io.Serializable, Cloneable, Comparable<updateGatewayComputeResourcePreference_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGatewayComputeResourcePreference_args");
+
+    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)1);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)2);
+    private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_PREFERENCE_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourcePreference", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new updateGatewayComputeResourcePreference_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new updateGatewayComputeResourcePreference_argsTupleSchemeFactory());
+    }
+
+    public String gatewayID; // required
+    public String computeResourceId; // required
+    public org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference; // 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 {
+      GATEWAY_ID((short)1, "gatewayID"),
+      COMPUTE_RESOURCE_ID((short)2, "computeResourceId"),
+      COMPUTE_RESOURCE_PREFERENCE((short)3, "computeResourcePreference");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : 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: // GATEWAY_ID
+            return GATEWAY_ID;
+          case 2: // COMPUTE_RESOURCE_ID
+            return COMPUTE_RESOURCE_ID;
+          case 3: // COMPUTE_RESOURCE_PREFERENCE
+            return COMPUTE_RESOURCE_PREFERENCE;
+          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!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayID", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.COMPUTE_RESOURCE_PREFERENCE, new org.apache.thrift.meta_data.FieldMetaData("computeResourcePreference", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference.class)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(updateGatewayComputeResourcePreference_args.class, metaDataMap);
+    }
+
+    public updateGatewayComputeResourcePreference_args() {
+    }
+
+    public updateGatewayComputeResourcePreference_args(
+      String gatewayID,
+      String computeResourceId,
+      org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference)
+    {
+      this();
+      this.gatewayID = gatewayID;
+      this.computeResourceId = computeResourceId;
+      this.computeResourcePreference = computeResourcePreference;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateGatewayComputeResourcePreference_args(updateGatewayComputeResourcePreference_args other) {
+      if (other.isSetGatewayID()) {
+        this.gatewayID = other.gatewayID;
+      }
+      if (other.isSetComputeResourceId()) {
+        this.computeResourceId = other.computeResourceId;
+      }
+      if (other.isSetComputeResourcePreference()) {
+        this.computeResourcePreference = new org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference(other.computeResourcePreference);
+      }
+    }
+
+    public updateGatewayComputeResourcePreference_args deepCopy() {
+      return new updateGatewayComputeResourcePreference_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.gatewayID = null;
+      this.computeResourceId = null;
+      this.computeResourcePreference = null;
+    }
+
+    public String getGatewayID() {
+      return this.gatewayID;
+    }
+
+    public updateGatewayComputeResourcePreference_args setGatewayID(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 String getComputeResourceId() {
+      return this.computeResourceId;
+    }
+
+    public updateGatewayComputeResourcePreference_args setComputeResourceId(String computeResourceId) {
+      this.computeResourceId = computeResourceId;
+      return this;
+    }
+
+    public void unsetComputeResourceId() {
+      this.computeResourceId = null;
+    }
+
+    /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourceId() {
+      return this.computeResourceId != null;
+    }
+
+    public void setComputeResourceIdIsSet(boolean value) {
+      if (!value) {
+        this.computeResourceId = null;
+      }
+    }
+
+    public org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference getComputeResourcePreference() {
+      return this.computeResourcePreference;
+    }
+
+    public updateGatewayComputeResourcePreference_args setComputeResourcePreference(org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference computeResourcePreference) {
+      this.computeResourcePreference = computeResourcePreference;
+      return this;
+    }
+
+    public void unsetComputeResourcePreference() {
+      this.computeResourcePreference = null;
+    }
+
+    /** Returns true if field computeResourcePreference is set (has been assigned a value) and false otherwise */
+    public boolean isSetComputeResourcePreference() {
+      return this.computeResourcePreference != null;
+    }
+
+    public void setComputeResourcePreferenceIsSet(boolean value) {
+      if (!value) {
+        this.computeResourcePreference = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case GATEWAY_ID:
+        if (value == null) {
+          unsetGatewayID();
+        } else {
+          setGatewayID((String)value);
+        }
+        break;
+
+      case COMPUTE_RESOURCE_ID:
+        if (value == null) {
+          unsetComputeResourceId();
+        } else {
+          setComputeResourceId((String)value);
+        }
+        break;
+
+      case COMPUTE_RESOURCE_PREFERENCE:
+        if (value == null) {
+          unsetComputeResourcePreference();
+        } else {
+          setComputeResourcePreference((org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case GATEWAY_ID:
+        return getGatewayID();
+
+      case COMPUTE_RESOURCE_ID:
+        return getComputeResourceId();
+
+      case COMPUTE_RESOURCE_PREFERENCE:
+        return getComputeResourcePreference();
+
+      }
+      throw new 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();
+      }
+
+      switch (field) {
+      case GATEWAY_ID:
+        return isSetGatewayID();
+      case COMPUTE_RESOURCE_ID:
+        return isSetComputeResourceId();
+      case COMPUTE_RESOURCE_PREFERENCE:
+        return isSetComputeResourcePreference();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateGatewayComputeResourcePreference_args)
+        return this.equals((updateGatewayComputeResourcePreference_args)that);
+      return false;
+    }
+
+    public boolean equals(updateGatewayComputeResourcePreference_args that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_gatewayID = true && this.isSetGatewayID();
+      boolean that_present_gatewayID = true && that.isSetGatewayID();
+      if (this_present_gatewayID || that_present_gatewayID) {
+        if (!(this_present_gatewayID && that_present_gatewayID))
+          return false;
+        if (!this.gatewayID.equals(that.gatewayID))
+          return false;
+      }
+
+      boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+      boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+      if (this_present_computeResourceId || that_present_computeResourceId) {
+        if (!(this_present_computeResourceId && that_present_computeResourceId))
+          return false;
+        if (!this.computeResourceId.equals(that.computeResourceId))
+          return false;
+      }
+
+      boolean this_present_computeResourcePreference = true && this.isSetComputeResourcePreference();
+      boolean that_present_computeResourcePreference = true && that.isSetComputeResourcePreference();
+      if (this_present_computeResourcePreference || that_present_computeResourcePreference) {
+        if (!(this_present_computeResourcePreference && that_present_computeResourcePreference))
+          return false;
+        if (!this.computeResourcePreference.equals(that.computeResourcePreference))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_gatewayID = true && (isSetGatewayID());
+      list.add(present_gatewayID);
+      if (present_gatewayID)
+        list.add(gatewayID);
+
+      boolean present_computeResourceId = true && (isSetComputeResourceId());
+      list.add(present_computeResourceId);
+      if (present_computeResourceId)
+        list.add(computeResourceId);
+
+      boolean present_computeResourcePreference = true && (isSetComputeResourcePreference());
+      list.add(present_computeResourcePreference);
+      if (present_computeResourcePreference)
+        list.add(computeResourcePreference);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(updateGatewayComputeResourcePreference_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetGatewayID()).compareTo(other.isSetGatewayID());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetGatewayID()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayID, other.gatewayID);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetComputeResourceId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetComputeResourcePreference()).compareTo(other.isSetComputeResourcePreference());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetComputeResourcePreference()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourcePreference, other.computeResourcePreference);
+        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);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("updateGatewayComputeResourcePreference_args(");
+      boolean first = true;
+
+      sb.append("gatewayID:");
+      if (this.gatewayID == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.gatewayID);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("computeResourceId:");
+      if (this.computeResourceId == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computeResourceId);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("computeResourcePreference:");
+      if (this.computeResourcePreference == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.computeResourcePreference);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      if (gatewayID == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayID' was not present! Struct: " + toString());
+      }
+      if (computeResourceId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' was not present! Struct: " + toString());
+      }
+      if (computeResourcePreference == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourcePreference' was not present! Struct: " + toString());
+      }
+      // check for sub-struct validity
+      if (computeResourcePreference != null) {
+        computeResourcePreference.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 {
+      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 updateGatewayComputeResourcePreference_argsStandardSchemeFactory implements SchemeFactory {
+      public updateGatewayComputeResourcePreference_argsStandardScheme getScheme() {
+        return new updateGatewayComputeResourcePreference_argsStandardScheme();
+      }
+    }
+
+    private static class updateGatewayComputeResourcePreference_argsStandardScheme extends StandardScheme<updateGatewayComputeResourcePreference_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, updateGatewayComputeResourcePreference_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: // GATEWAY_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.gatewayID = iprot.readString();
+                struct.setGatewayIDIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // COMPUTE_RESOURCE_ID
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.computeResourceId = iprot.readString();
+                struct.setComputeResourceIdIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 3: // COMPUTE_RESOURCE_PREFERENCE
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.computeResourcePreference = new org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference();
+                struct.computeResourcePreference.read(iprot);
+                struct.setComputeResourcePreferenceIsSet(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, updateGatewayComputeResourcePreference_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.gatewayID != null) {
+          oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
+          oprot.writeString(struct.gatewayID);
+          oprot.writeFieldEnd();
+        }
+        if (struct.computeResourceId != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+          oprot.writeString(struct.computeResourceId);
+          oprot.writeFieldEnd();
+        }
+        if (struct.computeResourcePreference != null) {
+          oprot.writeFieldBegin(COMPUTE_RESOURCE_PREFERENCE_FIELD_DESC);
+          struct.computeResourcePreference.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class updateGatewayComputeResourcePreference_argsTupleSchemeFactory implements SchemeFactory {
+      public updateGatewayComputeResourcePreference_argsTupleScheme getScheme() {
+        return new updateGatewayComputeResourcePreference_argsTupleScheme();
+      }
+    }
+
+    private static class updateGatewayComputeResourcePreference_argsTupleScheme extends TupleScheme<updateGatewayComputeResourcePreference_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, updateGatewayComputeResourcePreference_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        oprot.writeString(struct.gatewayID);
+        oprot.writeString(struct.computeResourceId);
+        struct.computeResourcePreference.write(oprot);
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, updateGatewayComputeResourcePreference_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        struct.gatewayID = iprot.readString();
+        struct.setGatewayIDIsSet(true);
+        struct.computeResourceId = iprot.readString();
+        struct.setComputeResourceIdIsSet(true);
+        struct.computeResourcePreference = new org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference();
+        struct.computeResourcePreference.read(iprot);
+        struct.setComputeResourcePreferenceIsSet(true);
+      }
+    }
+
+  }
+
+  public static class updateGatewayComputeResourcePreference_result implements org.apache.thrift.TBase<updateGatewayComputeResourcePreference_result, updateGatewayComputeResourcePreference_result._Fields>, java.io.Serializable, Cloneable, Comparable<updateGatewayComputeResourcePreference_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("updateGatewayComputeResourcePreference_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 RSE_FIELD_DESC = new org.apache.thrift.protocol.TField("rse", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new updateGatewayComputeResourcePreference_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new updateGatewayComputeResourcePreference_resultTupleSchemeFactory());
+    }
+
+    public boolean success; // required
+    public org.apache.airavata.registry.api.exception.RegistryServiceException rse; // 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"),
+      RSE((short)1, "rse");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : 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: // RSE
+            return RSE;
+          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!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // 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;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 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.RSE, new org.apache.thrift.meta_data.FieldMetaData("rse", 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(updateGatewayComputeResourcePreference_result.class, metaDataMap);
+    }
+
+    public updateGatewayComputeResourcePreference_result() {
+    }
+
+    public updateGatewayComputeResourcePreference_result(
+      boolean success,
+      org.apache.airavata.registry.api.exception.RegistryServiceException rse)
+    {
+      this();
+      this.success = success;
+      setSuccessIsSet(true);
+      this.rse = rse;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public updateGatewayComputeResourcePreference_result(updateGatewayComputeResourcePreference_result other) {
+      __isset_bitfield = other.__isset_bitfield;
+      this.success = other.success;
+      if (other.isSetRse()) {
+        this.rse = new org.apache.airavata.registry.api.exception.RegistryServiceException(other.rse);
+      }
+    }
+
+    public updateGatewayComputeResourcePreference_result deepCopy() {
+      return new updateGatewayComputeResourcePreference_result(this);
+    }
+
+    @Override
+    public void clear() {
+      setSuccessIsSet(false);
+      this.success = false;
+      this.rse = null;
+    }
+
+    public boolean isSuccess() {
+      return this.success;
+    }
+
+    public updateGatewayComputeResourcePreference_result setSuccess(boolean success) {
+      this.success = success;
+      setSuccessIsSet(true);
+      return this;
+    }
+
+    public void unsetSuccess() {
+      __isset_bitfield = 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 EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+    }
+
+    public org.apache.airavata.registry.api.exception.RegistryServiceException getRse() {
+      return this.rse;
+    }
+
+    public updateGatewayComputeResourcePreference_result setRse(org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+      this.rse = rse;
+      return this;
+    }
+
+    public void unsetRse() {
+      this.rse = null;
+    }
+
+    /** Returns true if field rse is set (has been assigned a value) and false otherwise */
+    public boolean isSetRse() {
+      return this.rse != null;
+    }
+
+    public void setRseIsSet(boolean value) {
+      if (!value) {
+        this.rse = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((Boolean)value);
+        }
+        break;
+
+      case RSE:
+        if (value == null) {
+          unsetRse();
+        } else {
+          setRse((org.apache.airavata.registry.api.exception.RegistryServiceException)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case SUCCESS:
+        return isSuccess();
+
+      case RSE:
+        return getRse();
+
+      }
+      throw new 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();
+      }
+
+      switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
+      case RSE:
+        return isSetRse();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof updateGatewayComputeResourcePreference_result)
+        return this.equals((updateGatewayComputeResourcePreference_result)that);
+      return false;
+    }
+
+    public boolean equals(updateGatewayComputeResourcePreference_result that) {
+      if (that == null)
+        return false;
+
+      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_rse = true && this.isSetRse();
+      boolean that_present_rse = true && that.isSetRse();
+      if (this_present_rse || that_present_rse) {
+        if (!(this_present_rse && that_present_rse))
+          return false;
+        if (!this.rse.equals(that.rse))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_success = true;
+      list.add(present_success);
+      if (present_success)
+        list.add(success);
+
+      boolean present_rse = true && (isSetRse());
+      list.add(present_rse);
+      if (present_rse)
+        list.add(rse);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(updateGatewayComputeRe

<TRUNCATED>

[07/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 96d4a91..1ec47c7 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
 public class Airavata {
 
   public interface Iface {
@@ -2455,12 +2455,287 @@ public class Airavata {
     public boolean deleteGatewayStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayID, String storageId) 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;
 
     /**
-     * Delete the Storage Resource Preference of a registered gateway profile.
+     * Register User Resource Profile.
+     * 
+     * @param UserResourceProfile
+     *    User Resource Profile Object.
+     *    The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+     *      resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param authzToken
+     * @param userResourceProfile
+     */
+    public String registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) 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;
+
+    /**
+     * Fetch the given User Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource profile.
      * 
      * @param gatewayID
-     *   The identifier of the gateway profile to be deleted.
+     *   The identifier to link a gateway for the requested user resource profile.
      * 
-     * @param storageId
+     * @return UserResourceProfile
+     *    User Resource Profile Object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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;
+
+    /**
+     * Update a User Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param UserResourceProfile
+     *    User Resource Profile Object.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userResourceProfile
+     */
+    public boolean updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) 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;
+
+    /**
+     * Delete the given User Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     */
+    public boolean deleteUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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;
+
+    /**
+     * Add a Compute Resource Preference to a registered User profile.
+     * 
+     * @param userId
+     *   The identifier for the User resource profile to be added.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     * @param userComputeResourcePreference
+     */
+    public boolean addUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) 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;
+
+    /**
+     * Add a Storage Resource Preference to a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to be added.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param storageResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userStorageResourceId
+     * @param userStoragePreference
+     */
+    public boolean addUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) 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;
+
+    /**
+     * 
+     * Fetch a Compute Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user profile to be requested
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference getUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) 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;
+
+    /**
+     * 
+     * Fetch a Storage Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userStorageResourceId
+     *   Identifier of the Stprage Preference required to be fetched.
+     * 
+     * @return UserStoragePreference
+     *   Returns the StoragePreference object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userStorageResourceId
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference getUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId) 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;
+
+    /**
+     * 
+     * Fetch all user resources Profiles registered
+     * 
+     * @return UserResourceProfile
+     *   Returns all the UserResourcePrifle list object.
+     * 
+     * 
+     * 
+     * @param authzToken
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles(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;
+
+    /**
+     * Update a Compute Resource Preference to a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user profile to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param userComputeResourcePreference
+     *   The ComputeResourcePreference object to be updated to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the updation.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     * @param userComputeResourcePreference
+     */
+    public boolean updateUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) 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;
+
+    /**
+     * Update a Storage Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userStorageId
+     *   The Storage resource identifier of the one that you want to update
+     * 
+     * @param userStoragePreference
+     *   The storagePreference object to be updated to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the updation.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userStorageId
+     * @param userStoragePreference
+     */
+    public boolean updateUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) 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;
+
+    /**
+     * Delete the Compute Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user resource profile to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     */
+    public boolean deleteUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) 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;
+
+    /**
+     * Delete the Storage Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier of the user profile to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link a gateway for the requested user resource profile.
+     * 
+     * @param userStorageId
      *   ID of the storage preference you want to delete.
      * 
      * @return status
@@ -2468,8 +2743,12 @@ public class Airavata {
      * 
      * 
      * @param authzToken
-     * @param gatewayId
+     * @param userId
+     * @param gatewayID
+     * @param userStorageId
      */
+    public boolean deleteUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId) 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<String> getAllWorkflows(org.apache.airavata.model.security.AuthzToken authzToken, 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;
 
     /**
@@ -2796,6 +3075,32 @@ public class Airavata {
 
     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 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 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 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 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 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 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 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 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 void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 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 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 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 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;
+
     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 getWorkflow(org.apache.airavata.model.security.AuthzToken authzToken, String workflowTemplateId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -7587,6 +7892,497 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result");
     }
 
+    public String registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) 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_registerUserResourceProfile(authzToken, userResourceProfile);
+      return recv_registerUserResourceProfile();
+    }
+
+    public void send_registerUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.thrift.TException
+    {
+      registerUserResourceProfile_args args = new registerUserResourceProfile_args();
+      args.setAuthzToken(authzToken);
+      args.setUserResourceProfile(userResourceProfile);
+      sendBase("registerUserResourceProfile", args);
+    }
+
+    public String recv_registerUserResourceProfile() 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
+    {
+      registerUserResourceProfile_result result = new registerUserResourceProfile_result();
+      receiveBase(result, "registerUserResourceProfile");
+      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, "registerUserResourceProfile failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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
+    {
+      send_getUserResourceProfile(authzToken, userId, gatewayID);
+      return recv_getUserResourceProfile();
+    }
+
+    public void send_getUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getUserResourceProfile_args args = new getUserResourceProfile_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getUserResourceProfile", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile recv_getUserResourceProfile() 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
+    {
+      getUserResourceProfile_result result = new getUserResourceProfile_result();
+      receiveBase(result, "getUserResourceProfile");
+      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, "getUserResourceProfile failed: unknown result");
+    }
+
+    public boolean updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) 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_updateUserResourceProfile(authzToken, userId, gatewayID, userResourceProfile);
+      return recv_updateUserResourceProfile();
+    }
+
+    public void send_updateUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.thrift.TException
+    {
+      updateUserResourceProfile_args args = new updateUserResourceProfile_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserResourceProfile(userResourceProfile);
+      sendBase("updateUserResourceProfile", args);
+    }
+
+    public boolean recv_updateUserResourceProfile() 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
+    {
+      updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+      receiveBase(result, "updateUserResourceProfile");
+      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, "updateUserResourceProfile failed: unknown result");
+    }
+
+    public boolean deleteUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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
+    {
+      send_deleteUserResourceProfile(authzToken, userId, gatewayID);
+      return recv_deleteUserResourceProfile();
+    }
+
+    public void send_deleteUserResourceProfile(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      deleteUserResourceProfile_args args = new deleteUserResourceProfile_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("deleteUserResourceProfile", args);
+    }
+
+    public boolean recv_deleteUserResourceProfile() 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
+    {
+      deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+      receiveBase(result, "deleteUserResourceProfile");
+      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, "deleteUserResourceProfile failed: unknown result");
+    }
+
+    public boolean addUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) 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_addUserComputeResourcePreference(authzToken, userId, gatewayID, userComputeResourceId, userComputeResourcePreference);
+      return recv_addUserComputeResourcePreference();
+    }
+
+    public void send_addUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.thrift.TException
+    {
+      addUserComputeResourcePreference_args args = new addUserComputeResourcePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      args.setUserComputeResourcePreference(userComputeResourcePreference);
+      sendBase("addUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_addUserComputeResourcePreference() 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
+    {
+      addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+      receiveBase(result, "addUserComputeResourcePreference");
+      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, "addUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean addUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) 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_addUserStoragePreference(authzToken, userId, gatewayID, userStorageResourceId, userStoragePreference);
+      return recv_addUserStoragePreference();
+    }
+
+    public void send_addUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.thrift.TException
+    {
+      addUserStoragePreference_args args = new addUserStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageResourceId(userStorageResourceId);
+      args.setUserStoragePreference(userStoragePreference);
+      sendBase("addUserStoragePreference", args);
+    }
+
+    public boolean recv_addUserStoragePreference() 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
+    {
+      addUserStoragePreference_result result = new addUserStoragePreference_result();
+      receiveBase(result, "addUserStoragePreference");
+      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, "addUserStoragePreference failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference getUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) 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_getUserComputeResourcePreference(authzToken, userId, gatewayID, userComputeResourceId);
+      return recv_getUserComputeResourcePreference();
+    }
+
+    public void send_getUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) throws org.apache.thrift.TException
+    {
+      getUserComputeResourcePreference_args args = new getUserComputeResourcePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      sendBase("getUserComputeResourcePreference", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference recv_getUserComputeResourcePreference() 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
+    {
+      getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+      receiveBase(result, "getUserComputeResourcePreference");
+      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, "getUserComputeResourcePreference failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference getUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId) 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_getUserStoragePreference(authzToken, userId, gatewayID, userStorageResourceId);
+      return recv_getUserStoragePreference();
+    }
+
+    public void send_getUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId) throws org.apache.thrift.TException
+    {
+      getUserStoragePreference_args args = new getUserStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageResourceId(userStorageResourceId);
+      sendBase("getUserStoragePreference", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference recv_getUserStoragePreference() 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
+    {
+      getUserStoragePreference_result result = new getUserStoragePreference_result();
+      receiveBase(result, "getUserStoragePreference");
+      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, "getUserStoragePreference failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles(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
+    {
+      send_getAllUserResourceProfiles(authzToken);
+      return recv_getAllUserResourceProfiles();
+    }
+
+    public void send_getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken) throws org.apache.thrift.TException
+    {
+      getAllUserResourceProfiles_args args = new getAllUserResourceProfiles_args();
+      args.setAuthzToken(authzToken);
+      sendBase("getAllUserResourceProfiles", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> recv_getAllUserResourceProfiles() 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
+    {
+      getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+      receiveBase(result, "getAllUserResourceProfiles");
+      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, "getAllUserResourceProfiles failed: unknown result");
+    }
+
+    public boolean updateUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) 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_updateUserComputeResourcePreference(authzToken, userId, gatewayID, userComputeResourceId, userComputeResourcePreference);
+      return recv_updateUserComputeResourcePreference();
+    }
+
+    public void send_updateUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.thrift.TException
+    {
+      updateUserComputeResourcePreference_args args = new updateUserComputeResourcePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      args.setUserComputeResourcePreference(userComputeResourcePreference);
+      sendBase("updateUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_updateUserComputeResourcePreference() 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
+    {
+      updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+      receiveBase(result, "updateUserComputeResourcePreference");
+      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, "updateUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean updateUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) 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_updateUserStoragePreference(authzToken, userId, gatewayID, userStorageId, userStoragePreference);
+      return recv_updateUserStoragePreference();
+    }
+
+    public void send_updateUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.thrift.TException
+    {
+      updateUserStoragePreference_args args = new updateUserStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageId(userStorageId);
+      args.setUserStoragePreference(userStoragePreference);
+      sendBase("updateUserStoragePreference", args);
+    }
+
+    public boolean recv_updateUserStoragePreference() 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
+    {
+      updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+      receiveBase(result, "updateUserStoragePreference");
+      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, "updateUserStoragePreference failed: unknown result");
+    }
+
+    public boolean deleteUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) 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_deleteUserComputeResourcePreference(authzToken, userId, gatewayID, userComputeResourceId);
+      return recv_deleteUserComputeResourcePreference();
+    }
+
+    public void send_deleteUserComputeResourcePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId) throws org.apache.thrift.TException
+    {
+      deleteUserComputeResourcePreference_args args = new deleteUserComputeResourcePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      sendBase("deleteUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_deleteUserComputeResourcePreference() 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
+    {
+      deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+      receiveBase(result, "deleteUserComputeResourcePreference");
+      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, "deleteUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean deleteUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId) 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_deleteUserStoragePreference(authzToken, userId, gatewayID, userStorageId);
+      return recv_deleteUserStoragePreference();
+    }
+
+    public void send_deleteUserStoragePreference(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId) throws org.apache.thrift.TException
+    {
+      deleteUserStoragePreference_args args = new deleteUserStoragePreference_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageId(userStorageId);
+      sendBase("deleteUserStoragePreference", args);
+    }
+
+    public boolean recv_deleteUserStoragePreference() 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
+    {
+      deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+      receiveBase(result, "deleteUserStoragePreference");
+      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, "deleteUserStoragePreference failed: unknown result");
+    }
+
     public List<String> getAllWorkflows(org.apache.airavata.model.security.AuthzToken authzToken, 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
     {
       send_getAllWorkflows(authzToken, gatewayId);
@@ -13127,6 +13923,530 @@ public class Airavata {
       }
     }
 
+    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 {
+      checkReady();
+      registerUserResourceProfile_call method_call = new registerUserResourceProfile_call(authzToken, userResourceProfile, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class registerUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile;
+      public registerUserResourceProfile_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userResourceProfile = userResourceProfile;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("registerUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        registerUserResourceProfile_args args = new registerUserResourceProfile_args();
+        args.setAuthzToken(authzToken);
+        args.setUserResourceProfile(userResourceProfile);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_registerUserResourceProfile();
+      }
+    }
+
+    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 {
+      checkReady();
+      getUserResourceProfile_call method_call = new getUserResourceProfile_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      public getUserResourceProfile_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserResourceProfile_args args = new getUserResourceProfile_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile 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!");
+        }
+        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_getUserResourceProfile();
+      }
+    }
+
+    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 {
+      checkReady();
+      updateUserResourceProfile_call method_call = new updateUserResourceProfile_call(authzToken, userId, gatewayID, userResourceProfile, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile;
+      public updateUserResourceProfile_call(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, 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.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userResourceProfile = userResourceProfile;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserResourceProfile_args args = new updateUserResourceProfile_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserResourceProfile(userResourceProfile);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserResourceProfile();
+      }
+    }
+
+    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 {
+      checkReady();
+      deleteUserResourceProfile_call method_call = new deleteUserResourceProfile_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      public deleteUserResourceProfile_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteUserResourceProfile_args args = new deleteUserResourceProfile_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_deleteUserResourceProfile();
+      }
+    }
+
+    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 {
+      checkReady();
+      addUserComputeResourcePreference_call method_call = new addUserComputeResourcePreference_call(authzToken, userId, gatewayID, userComputeResourceId, userComputeResourcePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference;
+      public addUserComputeResourcePreference_call(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, 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.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+        this.userComputeResourcePreference = userComputeResourcePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addUserComputeResourcePreference_args args = new addUserComputeResourcePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.setUserComputeResourcePreference(userComputeResourcePreference);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_addUserComputeResourcePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      addUserStoragePreference_call method_call = new addUserStoragePreference_call(authzToken, userId, gatewayID, userStorageResourceId, userStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userStorageResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference;
+      public addUserStoragePreference_call(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, 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.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageResourceId = userStorageResourceId;
+        this.userStoragePreference = userStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addUserStoragePreference_args args = new addUserStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageResourceId(userStorageResourceId);
+        args.setUserStoragePreference(userStoragePreference);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_addUserStoragePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      getUserComputeResourcePreference_call method_call = new getUserComputeResourcePreference_call(authzToken, userId, gatewayID, userComputeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      public getUserComputeResourcePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserComputeResourcePreference_args args = new getUserComputeResourcePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference 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!");
+        }
+        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_getUserComputeResourcePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      getUserStoragePreference_call method_call = new getUserStoragePreference_call(authzToken, userId, gatewayID, userStorageResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userStorageResourceId;
+      public getUserStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageResourceId = userStorageResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserStoragePreference_args args = new getUserStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageResourceId(userStorageResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference 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!");
+        }
+        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_getUserStoragePreference();
+      }
+    }
+
+    public void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserResourceProfiles_call method_call = new getAllUserResourceProfiles_call(authzToken, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserResourceProfiles_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      public getAllUserResourceProfiles_call(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserResourceProfiles", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserResourceProfiles_args args = new getAllUserResourceProfiles_args();
+        args.setAuthzToken(authzToken);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> 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!");
+        }
+        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_getAllUserResourceProfiles();
+      }
+    }
+
+    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 {
+      checkReady();
+      updateUserComputeResourcePreference_call method_call = new updateUserComputeResourcePreference_call(authzToken, userId, gatewayID, userComputeResourceId, userComputeResourcePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference;
+      public updateUserComputeResourcePreference_call(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, 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.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+        this.userComputeResourcePreference = userComputeResourcePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserComputeResourcePreference_args args = new updateUserComputeResourcePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.setUserComputeResourcePreference(userComputeResourcePreference);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserComputeResourcePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      updateUserStoragePreference_call method_call = new updateUserStoragePreference_call(authzToken, userId, gatewayID, userStorageId, userStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userStorageId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference;
+      public updateUserStoragePreference_call(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, 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.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageId = userStorageId;
+        this.userStoragePreference = userStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserStoragePreference_args args = new updateUserStoragePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageId(userStorageId);
+        args.setUserStoragePreference(userStoragePreference);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserStoragePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      deleteUserComputeResourcePreference_call method_call = new deleteUserComputeResourcePreference_call(authzToken, userId, gatewayID, userComputeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      public deleteUserComputeResourcePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteUserComputeResourcePreference_args args = new deleteUserComputeResourcePreference_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        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 {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_deleteUserComputeResourcePreference();
+      }
+    }
+
+    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 {
+      checkReady();
+      deleteUserStoragePreference_call method_call = new deleteUserStoragePreference_call(authzToken, userId, gatewayID, userStorageId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      private String userStorageId;
+      public deleteUserStoragePreference_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, String userStorageId, 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 {
+    

<TRUNCATED>

[04/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 00db295..3454d4a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -23,15 +23,32 @@
  */
 package org.apache.airavata.model.process;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
 import javax.annotation.Generated;
-import java.util.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 /**
@@ -51,7 +68,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private static final org.apache.thrift.protocol.TField EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("experimentId", org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)3);
   private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)4);
-  private static final org.apache.thrift.protocol.TField PROCESS_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatuses", org.apache.thrift.protocol.TType.LIST, (short)5);
+  private static final org.apache.thrift.protocol.TField PROCESS_STATUSES_FIELD_DESC = new org.apache.thrift.protocol.TField("processStatuses", org.apache.thrift.protocol.TType.LIST, (short)5);
   private static final org.apache.thrift.protocol.TField PROCESS_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("processDetail", org.apache.thrift.protocol.TType.STRING, (short)6);
   private static final org.apache.thrift.protocol.TField APPLICATION_INTERFACE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationInterfaceId", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField APPLICATION_DEPLOYMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("applicationDeploymentId", org.apache.thrift.protocol.TType.STRING, (short)8);
@@ -61,7 +78,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private static final org.apache.thrift.protocol.TField PROCESS_RESOURCE_SCHEDULE_FIELD_DESC = new org.apache.thrift.protocol.TField("processResourceSchedule", org.apache.thrift.protocol.TType.STRUCT, (short)12);
   private static final org.apache.thrift.protocol.TField TASKS_FIELD_DESC = new org.apache.thrift.protocol.TField("tasks", org.apache.thrift.protocol.TType.LIST, (short)13);
   private static final org.apache.thrift.protocol.TField TASK_DAG_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDag", org.apache.thrift.protocol.TType.STRING, (short)14);
-  private static final org.apache.thrift.protocol.TField PROCESS_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("processErrors", org.apache.thrift.protocol.TType.LIST, (short)15);
+  private static final org.apache.thrift.protocol.TField PROCESS_ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("processErrors", org.apache.thrift.protocol.TType.LIST, (short)15);
   private static final org.apache.thrift.protocol.TField GATEWAY_EXECUTION_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayExecutionId", org.apache.thrift.protocol.TType.STRING, (short)16);
   private static final org.apache.thrift.protocol.TField ENABLE_EMAIL_NOTIFICATION_FIELD_DESC = new org.apache.thrift.protocol.TField("enableEmailNotification", org.apache.thrift.protocol.TType.BOOL, (short)17);
   private static final org.apache.thrift.protocol.TField EMAIL_ADDRESSES_FIELD_DESC = new org.apache.thrift.protocol.TField("emailAddresses", org.apache.thrift.protocol.TType.LIST, (short)18);
@@ -107,7 +124,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     EXPERIMENT_ID((short)2, "experimentId"),
     CREATION_TIME((short)3, "creationTime"),
     LAST_UPDATE_TIME((short)4, "lastUpdateTime"),
-    PROCESS_STATUS((short)5, "processStatuses"),
+    PROCESS_STATUSES((short)5, "processStatuses"),
     PROCESS_DETAIL((short)6, "processDetail"),
     APPLICATION_INTERFACE_ID((short)7, "applicationInterfaceId"),
     APPLICATION_DEPLOYMENT_ID((short)8, "applicationDeploymentId"),
@@ -117,7 +134,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     PROCESS_RESOURCE_SCHEDULE((short)12, "processResourceSchedule"),
     TASKS((short)13, "tasks"),
     TASK_DAG((short)14, "taskDag"),
-    PROCESS_ERROR((short)15, "processErrors"),
+    PROCESS_ERRORS((short)15, "processErrors"),
     GATEWAY_EXECUTION_ID((short)16, "gatewayExecutionId"),
     ENABLE_EMAIL_NOTIFICATION((short)17, "enableEmailNotification"),
     EMAIL_ADDRESSES((short)18, "emailAddresses"),
@@ -148,8 +165,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
           return CREATION_TIME;
         case 4: // LAST_UPDATE_TIME
           return LAST_UPDATE_TIME;
-        case 5: // PROCESS_STATUS
-          return PROCESS_STATUS;
+        case 5: // PROCESS_STATUSES
+          return PROCESS_STATUSES;
         case 6: // PROCESS_DETAIL
           return PROCESS_DETAIL;
         case 7: // APPLICATION_INTERFACE_ID
@@ -168,8 +185,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
           return TASKS;
         case 14: // TASK_DAG
           return TASK_DAG;
-        case 15: // PROCESS_ERROR
-          return PROCESS_ERROR;
+        case 15: // PROCESS_ERRORS
+          return PROCESS_ERRORS;
         case 16: // GATEWAY_EXECUTION_ID
           return GATEWAY_EXECUTION_ID;
         case 17: // ENABLE_EMAIL_NOTIFICATION
@@ -231,7 +248,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
   private static final int __ENABLEEMAILNOTIFICATION_ISSET_ID = 2;
   private static final int __GENERATECERT_ISSET_ID = 3;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.LAST_UPDATE_TIME,_Fields.PROCESS_STATUS,_Fields.PROCESS_DETAIL,_Fields.APPLICATION_INTERFACE_ID,_Fields.APPLICATION_DEPLOYMENT_ID,_Fields.COMPUTE_RESOURCE_ID,_Fields.PROCESS_INPUTS,_Fields.PROCESS_OUTPUTS,_Fields.PROCESS_RESOURCE_SCHEDULE,_Fields.TASKS,_Fields.TASK_DAG,_Fields.PROCESS_ERROR,_Fields.GATEWAY_EXECUTION_ID,_Fields.ENABLE_EMAIL_NOTIFICATION,_Fields.EMAIL_ADDRESSES,_Fields.STORAGE_RESOURCE_ID,_Fields.USER_DN,_Fields.GENERATE_CERT,_Fields.EXPERIMENT_DATA_DIR,_Fields.USER_NAME};
+  private static final _Fields optionals[] = {_Fields.CREATION_TIME,_Fields.LAST_UPDATE_TIME,_Fields.PROCESS_STATUSES,_Fields.PROCESS_DETAIL,_Fields.APPLICATION_INTERFACE_ID,_Fields.APPLICATION_DEPLOYMENT_ID,_Fields.COMPUTE_RESOURCE_ID,_Fields.PROCESS_INPUTS,_Fields.PROCESS_OUTPUTS,_Fields.PROCESS_RESOURCE_SCHEDULE,_Fields.TASKS,_Fields.TASK_DAG,_Fields.PROCESS_ERRORS,_Fields.GATEWAY_EXECUTION_ID,_Fields.ENABLE_EMAIL_NOTIFICATION,_Fields.EMAIL_ADDRESSES,_Fields.STORAGE_RESOURCE_ID,_Fields.USER_DN,_Fields.GENERATE_CERT,_Fields.EXPERIMENT_DATA_DIR,_Fields.USER_NAME};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -243,7 +260,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.PROCESS_STATUS, new org.apache.thrift.meta_data.FieldMetaData("processStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.PROCESS_STATUSES, new org.apache.thrift.meta_data.FieldMetaData("processStatuses", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.ProcessStatus.class))));
     tmpMap.put(_Fields.PROCESS_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("processDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -267,7 +284,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.task.TaskModel.class))));
     tmpMap.put(_Fields.TASK_DAG, new org.apache.thrift.meta_data.FieldMetaData("taskDag", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PROCESS_ERROR, new org.apache.thrift.meta_data.FieldMetaData("processErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.PROCESS_ERRORS, new org.apache.thrift.meta_data.FieldMetaData("processErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
     tmpMap.put(_Fields.GATEWAY_EXECUTION_ID, new org.apache.thrift.meta_data.FieldMetaData("gatewayExecutionId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -320,12 +337,12 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     }
     this.creationTime = other.creationTime;
     this.lastUpdateTime = other.lastUpdateTime;
-    if (other.isSetProcessStatus()) {
-      List<org.apache.airavata.model.status.ProcessStatus> __this__processStatus = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(other.processStatuses.size());
+    if (other.isSetProcessStatuses()) {
+      List<org.apache.airavata.model.status.ProcessStatus> __this__processStatuses = new ArrayList<org.apache.airavata.model.status.ProcessStatus>(other.processStatuses.size());
       for (org.apache.airavata.model.status.ProcessStatus other_element : other.processStatuses) {
-        __this__processStatus.add(new org.apache.airavata.model.status.ProcessStatus(other_element));
+        __this__processStatuses.add(new org.apache.airavata.model.status.ProcessStatus(other_element));
       }
-      this.processStatuses = __this__processStatus;
+      this.processStatuses = __this__processStatuses;
     }
     if (other.isSetProcessDetail()) {
       this.processDetail = other.processDetail;
@@ -366,12 +383,12 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     if (other.isSetTaskDag()) {
       this.taskDag = other.taskDag;
     }
-    if (other.isSetProcessError()) {
-      List<org.apache.airavata.model.commons.ErrorModel> __this__processError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.processErrors.size());
+    if (other.isSetProcessErrors()) {
+      List<org.apache.airavata.model.commons.ErrorModel> __this__processErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.processErrors.size());
       for (org.apache.airavata.model.commons.ErrorModel other_element : other.processErrors) {
-        __this__processError.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
+        __this__processErrors.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
       }
-      this.processErrors = __this__processError;
+      this.processErrors = __this__processErrors;
     }
     if (other.isSetGatewayExecutionId()) {
       this.gatewayExecutionId = other.gatewayExecutionId;
@@ -522,15 +539,15 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID, value);
   }
 
-  public int getProcessStatusSize() {
+  public int getProcessStatusesSize() {
     return (this.processStatuses == null) ? 0 : this.processStatuses.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.status.ProcessStatus> getProcessStatusIterator() {
+  public java.util.Iterator<org.apache.airavata.model.status.ProcessStatus> getProcessStatusesIterator() {
     return (this.processStatuses == null) ? null : this.processStatuses.iterator();
   }
 
-  public void addToProcessStatus(org.apache.airavata.model.status.ProcessStatus elem) {
+  public void addToProcessStatuses(org.apache.airavata.model.status.ProcessStatus elem) {
     if (this.processStatuses == null) {
       this.processStatuses = new ArrayList<org.apache.airavata.model.status.ProcessStatus>();
     }
@@ -545,16 +562,16 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     this.processStatuses = processStatuses;
   }
 
-  public void unsetProcessStatus() {
+  public void unsetProcessStatuses() {
     this.processStatuses = null;
   }
 
   /** Returns true if field processStatuses is set (has been assigned a value) and false otherwise */
-  public boolean isSetProcessStatus() {
+  public boolean isSetProcessStatuses() {
     return this.processStatuses != null;
   }
 
-  public void setProcessStatusIsSet(boolean value) {
+  public void setProcessStatusesIsSet(boolean value) {
     if (!value) {
       this.processStatuses = null;
     }
@@ -812,15 +829,15 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     }
   }
 
-  public int getProcessErrorSize() {
+  public int getProcessErrorsSize() {
     return (this.processErrors == null) ? 0 : this.processErrors.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getProcessErrorIterator() {
+  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getProcessErrorsIterator() {
     return (this.processErrors == null) ? null : this.processErrors.iterator();
   }
 
-  public void addToProcessError(org.apache.airavata.model.commons.ErrorModel elem) {
+  public void addToProcessErrors(org.apache.airavata.model.commons.ErrorModel elem) {
     if (this.processErrors == null) {
       this.processErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
     }
@@ -835,16 +852,16 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     this.processErrors = processErrors;
   }
 
-  public void unsetProcessError() {
+  public void unsetProcessErrors() {
     this.processErrors = null;
   }
 
   /** Returns true if field processErrors is set (has been assigned a value) and false otherwise */
-  public boolean isSetProcessError() {
+  public boolean isSetProcessErrors() {
     return this.processErrors != null;
   }
 
-  public void setProcessErrorIsSet(boolean value) {
+  public void setProcessErrorsIsSet(boolean value) {
     if (!value) {
       this.processErrors = null;
     }
@@ -1081,11 +1098,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       }
       break;
 
-    case PROCESS_STATUS:
+    case PROCESS_STATUSES:
       if (value == null) {
-        unsetProcessStatus();
+        unsetProcessStatuses();
       } else {
-        setProcessStatuses((List<org.apache.airavata.model.status.ProcessStatus>) value);
+        setProcessStatuses((List<org.apache.airavata.model.status.ProcessStatus>)value);
       }
       break;
 
@@ -1161,11 +1178,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       }
       break;
 
-    case PROCESS_ERROR:
+    case PROCESS_ERRORS:
       if (value == null) {
-        unsetProcessError();
+        unsetProcessErrors();
       } else {
-        setProcessErrors((List<org.apache.airavata.model.commons.ErrorModel>) value);
+        setProcessErrors((List<org.apache.airavata.model.commons.ErrorModel>)value);
       }
       break;
 
@@ -1250,7 +1267,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     case LAST_UPDATE_TIME:
       return getLastUpdateTime();
 
-    case PROCESS_STATUS:
+    case PROCESS_STATUSES:
       return getProcessStatuses();
 
     case PROCESS_DETAIL:
@@ -1280,7 +1297,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     case TASK_DAG:
       return getTaskDag();
 
-    case PROCESS_ERROR:
+    case PROCESS_ERRORS:
       return getProcessErrors();
 
     case GATEWAY_EXECUTION_ID:
@@ -1326,8 +1343,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return isSetCreationTime();
     case LAST_UPDATE_TIME:
       return isSetLastUpdateTime();
-    case PROCESS_STATUS:
-      return isSetProcessStatus();
+    case PROCESS_STATUSES:
+      return isSetProcessStatuses();
     case PROCESS_DETAIL:
       return isSetProcessDetail();
     case APPLICATION_INTERFACE_ID:
@@ -1346,8 +1363,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       return isSetTasks();
     case TASK_DAG:
       return isSetTaskDag();
-    case PROCESS_ERROR:
-      return isSetProcessError();
+    case PROCESS_ERRORS:
+      return isSetProcessErrors();
     case GATEWAY_EXECUTION_ID:
       return isSetGatewayExecutionId();
     case ENABLE_EMAIL_NOTIFICATION:
@@ -1417,10 +1434,10 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         return false;
     }
 
-    boolean this_present_processStatus = true && this.isSetProcessStatus();
-    boolean that_present_processStatus = true && that.isSetProcessStatus();
-    if (this_present_processStatus || that_present_processStatus) {
-      if (!(this_present_processStatus && that_present_processStatus))
+    boolean this_present_processStatuses = true && this.isSetProcessStatuses();
+    boolean that_present_processStatuses = true && that.isSetProcessStatuses();
+    if (this_present_processStatuses || that_present_processStatuses) {
+      if (!(this_present_processStatuses && that_present_processStatuses))
         return false;
       if (!this.processStatuses.equals(that.processStatuses))
         return false;
@@ -1507,10 +1524,10 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         return false;
     }
 
-    boolean this_present_processError = true && this.isSetProcessError();
-    boolean that_present_processError = true && that.isSetProcessError();
-    if (this_present_processError || that_present_processError) {
-      if (!(this_present_processError && that_present_processError))
+    boolean this_present_processErrors = true && this.isSetProcessErrors();
+    boolean that_present_processErrors = true && that.isSetProcessErrors();
+    if (this_present_processErrors || that_present_processErrors) {
+      if (!(this_present_processErrors && that_present_processErrors))
         return false;
       if (!this.processErrors.equals(that.processErrors))
         return false;
@@ -1615,9 +1632,9 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     if (present_lastUpdateTime)
       list.add(lastUpdateTime);
 
-    boolean present_processStatus = true && (isSetProcessStatus());
-    list.add(present_processStatus);
-    if (present_processStatus)
+    boolean present_processStatuses = true && (isSetProcessStatuses());
+    list.add(present_processStatuses);
+    if (present_processStatuses)
       list.add(processStatuses);
 
     boolean present_processDetail = true && (isSetProcessDetail());
@@ -1665,9 +1682,9 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
     if (present_taskDag)
       list.add(taskDag);
 
-    boolean present_processError = true && (isSetProcessError());
-    list.add(present_processError);
-    if (present_processError)
+    boolean present_processErrors = true && (isSetProcessErrors());
+    list.add(present_processErrors);
+    if (present_processErrors)
       list.add(processErrors);
 
     boolean present_gatewayExecutionId = true && (isSetGatewayExecutionId());
@@ -1761,11 +1778,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetProcessStatus()).compareTo(other.isSetProcessStatus());
+    lastComparison = Boolean.valueOf(isSetProcessStatuses()).compareTo(other.isSetProcessStatuses());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetProcessStatus()) {
+    if (isSetProcessStatuses()) {
       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processStatuses, other.processStatuses);
       if (lastComparison != 0) {
         return lastComparison;
@@ -1861,11 +1878,11 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetProcessError()).compareTo(other.isSetProcessError());
+    lastComparison = Boolean.valueOf(isSetProcessErrors()).compareTo(other.isSetProcessErrors());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetProcessError()) {
+    if (isSetProcessErrors()) {
       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processErrors, other.processErrors);
       if (lastComparison != 0) {
         return lastComparison;
@@ -1998,7 +2015,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       sb.append(this.lastUpdateTime);
       first = false;
     }
-    if (isSetProcessStatus()) {
+    if (isSetProcessStatuses()) {
       if (!first) sb.append(", ");
       sb.append("processStatuses:");
       if (this.processStatuses == null) {
@@ -2098,7 +2115,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       }
       first = false;
     }
-    if (isSetProcessError()) {
+    if (isSetProcessErrors()) {
       if (!first) sb.append(", ");
       sb.append("processErrors:");
       if (this.processErrors == null) {
@@ -2268,7 +2285,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // PROCESS_STATUS
+          case 5: // PROCESS_STATUSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -2282,7 +2299,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
                 }
                 iprot.readListEnd();
               }
-              struct.setProcessStatusIsSet(true);
+              struct.setProcessStatusesIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -2393,7 +2410,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 15: // PROCESS_ERROR
+          case 15: // PROCESS_ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list12 = iprot.readListBegin();
@@ -2407,7 +2424,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
                 }
                 iprot.readListEnd();
               }
-              struct.setProcessErrorIsSet(true);
+              struct.setProcessErrorsIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -2520,8 +2537,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         oprot.writeFieldEnd();
       }
       if (struct.processStatuses != null) {
-        if (struct.isSetProcessStatus()) {
-          oprot.writeFieldBegin(PROCESS_STATUS_FIELD_DESC);
+        if (struct.isSetProcessStatuses()) {
+          oprot.writeFieldBegin(PROCESS_STATUSES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processStatuses.size()));
             for (org.apache.airavata.model.status.ProcessStatus _iter18 : struct.processStatuses)
@@ -2618,8 +2635,8 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
         }
       }
       if (struct.processErrors != null) {
-        if (struct.isSetProcessError()) {
-          oprot.writeFieldBegin(PROCESS_ERROR_FIELD_DESC);
+        if (struct.isSetProcessErrors()) {
+          oprot.writeFieldBegin(PROCESS_ERRORS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.processErrors.size()));
             for (org.apache.airavata.model.commons.ErrorModel _iter22 : struct.processErrors)
@@ -2716,7 +2733,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (struct.isSetLastUpdateTime()) {
         optionals.set(1);
       }
-      if (struct.isSetProcessStatus()) {
+      if (struct.isSetProcessStatuses()) {
         optionals.set(2);
       }
       if (struct.isSetProcessDetail()) {
@@ -2746,7 +2763,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (struct.isSetTaskDag()) {
         optionals.set(11);
       }
-      if (struct.isSetProcessError()) {
+      if (struct.isSetProcessErrors()) {
         optionals.set(12);
       }
       if (struct.isSetGatewayExecutionId()) {
@@ -2780,7 +2797,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (struct.isSetLastUpdateTime()) {
         oprot.writeI64(struct.lastUpdateTime);
       }
-      if (struct.isSetProcessStatus()) {
+      if (struct.isSetProcessStatuses()) {
         {
           oprot.writeI32(struct.processStatuses.size());
           for (org.apache.airavata.model.status.ProcessStatus _iter24 : struct.processStatuses)
@@ -2834,7 +2851,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
       if (struct.isSetTaskDag()) {
         oprot.writeString(struct.taskDag);
       }
-      if (struct.isSetProcessError()) {
+      if (struct.isSetProcessErrors()) {
         {
           oprot.writeI32(struct.processErrors.size());
           for (org.apache.airavata.model.commons.ErrorModel _iter28 : struct.processErrors)
@@ -2903,7 +2920,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             struct.processStatuses.add(_elem31);
           }
         }
-        struct.setProcessStatusIsSet(true);
+        struct.setProcessStatusesIsSet(true);
       }
       if (incoming.get(3)) {
         struct.processDetail = iprot.readString();
@@ -2984,7 +3001,7 @@ public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, Proce
             struct.processErrors.add(_elem43);
           }
         }
-        struct.setProcessErrorIsSet(true);
+        struct.setProcessErrorsIsSet(true);
       }
       if (incoming.get(13)) {
         struct.gatewayExecutionId = iprot.readString();

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 5ebdacf..12770ca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -23,16 +23,32 @@
  */
 package org.apache.airavata.model.task;
 
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-import org.apache.thrift.scheme.TupleScheme;
 
-import javax.annotation.Generated;
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
 import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 /**
@@ -53,10 +69,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
   private static final org.apache.thrift.protocol.TField PARENT_PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("parentProcessId", org.apache.thrift.protocol.TType.STRING, (short)3);
   private static final org.apache.thrift.protocol.TField CREATION_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("creationTime", org.apache.thrift.protocol.TType.I64, (short)4);
   private static final org.apache.thrift.protocol.TField LAST_UPDATE_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("lastUpdateTime", org.apache.thrift.protocol.TType.I64, (short)5);
-  private static final org.apache.thrift.protocol.TField TASK_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
+  private static final org.apache.thrift.protocol.TField TASK_STATUSES_FIELD_DESC = new org.apache.thrift.protocol.TField("taskStatuses", org.apache.thrift.protocol.TType.LIST, (short)6);
   private static final org.apache.thrift.protocol.TField TASK_DETAIL_FIELD_DESC = new org.apache.thrift.protocol.TField("taskDetail", org.apache.thrift.protocol.TType.STRING, (short)7);
   private static final org.apache.thrift.protocol.TField SUB_TASK_MODEL_FIELD_DESC = new org.apache.thrift.protocol.TField("subTaskModel", org.apache.thrift.protocol.TType.STRING, (short)8);
-  private static final org.apache.thrift.protocol.TField TASK_ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("taskErrors", org.apache.thrift.protocol.TType.LIST, (short)9);
+  private static final org.apache.thrift.protocol.TField TASK_ERRORS_FIELD_DESC = new org.apache.thrift.protocol.TField("taskErrors", org.apache.thrift.protocol.TType.LIST, (short)9);
   private static final org.apache.thrift.protocol.TField JOBS_FIELD_DESC = new org.apache.thrift.protocol.TField("jobs", org.apache.thrift.protocol.TType.LIST, (short)10);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -87,10 +103,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     PARENT_PROCESS_ID((short)3, "parentProcessId"),
     CREATION_TIME((short)4, "creationTime"),
     LAST_UPDATE_TIME((short)5, "lastUpdateTime"),
-    TASK_STATUS((short)6, "taskStatuses"),
+    TASK_STATUSES((short)6, "taskStatuses"),
     TASK_DETAIL((short)7, "taskDetail"),
     SUB_TASK_MODEL((short)8, "subTaskModel"),
-    TASK_ERROR((short)9, "taskErrors"),
+    TASK_ERRORS((short)9, "taskErrors"),
     JOBS((short)10, "jobs");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -116,14 +132,14 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
           return CREATION_TIME;
         case 5: // LAST_UPDATE_TIME
           return LAST_UPDATE_TIME;
-        case 6: // TASK_STATUS
-          return TASK_STATUS;
+        case 6: // TASK_STATUSES
+          return TASK_STATUSES;
         case 7: // TASK_DETAIL
           return TASK_DETAIL;
         case 8: // SUB_TASK_MODEL
           return SUB_TASK_MODEL;
-        case 9: // TASK_ERROR
-          return TASK_ERROR;
+        case 9: // TASK_ERRORS
+          return TASK_ERRORS;
         case 10: // JOBS
           return JOBS;
         default:
@@ -169,7 +185,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
   private static final int __CREATIONTIME_ISSET_ID = 0;
   private static final int __LASTUPDATETIME_ISSET_ID = 1;
   private byte __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.TASK_DETAIL,_Fields.SUB_TASK_MODEL,_Fields.TASK_ERROR,_Fields.JOBS};
+  private static final _Fields optionals[] = {_Fields.TASK_DETAIL,_Fields.SUB_TASK_MODEL,_Fields.TASK_ERRORS,_Fields.JOBS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -183,14 +199,14 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.LAST_UPDATE_TIME, new org.apache.thrift.meta_data.FieldMetaData("lastUpdateTime", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-    tmpMap.put(_Fields.TASK_STATUS, new org.apache.thrift.meta_data.FieldMetaData("taskStatuses", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.TASK_STATUSES, new org.apache.thrift.meta_data.FieldMetaData("taskStatuses", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.status.TaskStatus.class))));
     tmpMap.put(_Fields.TASK_DETAIL, new org.apache.thrift.meta_data.FieldMetaData("taskDetail", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.SUB_TASK_MODEL, new org.apache.thrift.meta_data.FieldMetaData("subTaskModel", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , true)));
-    tmpMap.put(_Fields.TASK_ERROR, new org.apache.thrift.meta_data.FieldMetaData("taskErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.TASK_ERRORS, new org.apache.thrift.meta_data.FieldMetaData("taskErrors", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.commons.ErrorModel.class))));
     tmpMap.put(_Fields.JOBS, new org.apache.thrift.meta_data.FieldMetaData("jobs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -211,7 +227,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     String parentProcessId,
     long creationTime,
     long lastUpdateTime,
-    List<org.apache.airavata.model.status.TaskStatus> taskStatus)
+    List<org.apache.airavata.model.status.TaskStatus> taskStatuses)
   {
     this();
     this.taskId = taskId;
@@ -221,7 +237,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     setCreationTimeIsSet(true);
     this.lastUpdateTime = lastUpdateTime;
     setLastUpdateTimeIsSet(true);
-    this.taskStatuses = taskStatus;
+    this.taskStatuses = taskStatuses;
   }
 
   /**
@@ -240,12 +256,12 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     }
     this.creationTime = other.creationTime;
     this.lastUpdateTime = other.lastUpdateTime;
-    if (other.isSetTaskStatus()) {
-      List<org.apache.airavata.model.status.TaskStatus> __this__taskStatus = new ArrayList<org.apache.airavata.model.status.TaskStatus>(other.taskStatuses.size());
+    if (other.isSetTaskStatuses()) {
+      List<org.apache.airavata.model.status.TaskStatus> __this__taskStatuses = new ArrayList<org.apache.airavata.model.status.TaskStatus>(other.taskStatuses.size());
       for (org.apache.airavata.model.status.TaskStatus other_element : other.taskStatuses) {
-        __this__taskStatus.add(new org.apache.airavata.model.status.TaskStatus(other_element));
+        __this__taskStatuses.add(new org.apache.airavata.model.status.TaskStatus(other_element));
       }
-      this.taskStatuses = __this__taskStatus;
+      this.taskStatuses = __this__taskStatuses;
     }
     if (other.isSetTaskDetail()) {
       this.taskDetail = other.taskDetail;
@@ -253,12 +269,12 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     if (other.isSetSubTaskModel()) {
       this.subTaskModel = org.apache.thrift.TBaseHelper.copyBinary(other.subTaskModel);
     }
-    if (other.isSetTaskError()) {
-      List<org.apache.airavata.model.commons.ErrorModel> __this__taskError = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.taskErrors.size());
+    if (other.isSetTaskErrors()) {
+      List<org.apache.airavata.model.commons.ErrorModel> __this__taskErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>(other.taskErrors.size());
       for (org.apache.airavata.model.commons.ErrorModel other_element : other.taskErrors) {
-        __this__taskError.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
+        __this__taskErrors.add(new org.apache.airavata.model.commons.ErrorModel(other_element));
       }
-      this.taskErrors = __this__taskError;
+      this.taskErrors = __this__taskErrors;
     }
     if (other.isSetJobs()) {
       List<org.apache.airavata.model.job.JobModel> __this__jobs = new ArrayList<org.apache.airavata.model.job.JobModel>(other.jobs.size());
@@ -411,15 +427,15 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LASTUPDATETIME_ISSET_ID, value);
   }
 
-  public int getTaskStatusSize() {
+  public int getTaskStatusesSize() {
     return (this.taskStatuses == null) ? 0 : this.taskStatuses.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.status.TaskStatus> getTaskStatusIterator() {
+  public java.util.Iterator<org.apache.airavata.model.status.TaskStatus> getTaskStatusesIterator() {
     return (this.taskStatuses == null) ? null : this.taskStatuses.iterator();
   }
 
-  public void addToTaskStatus(org.apache.airavata.model.status.TaskStatus elem) {
+  public void addToTaskStatuses(org.apache.airavata.model.status.TaskStatus elem) {
     if (this.taskStatuses == null) {
       this.taskStatuses = new ArrayList<org.apache.airavata.model.status.TaskStatus>();
     }
@@ -434,16 +450,16 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     this.taskStatuses = taskStatuses;
   }
 
-  public void unsetTaskStatus() {
+  public void unsetTaskStatuses() {
     this.taskStatuses = null;
   }
 
   /** Returns true if field taskStatuses is set (has been assigned a value) and false otherwise */
-  public boolean isSetTaskStatus() {
+  public boolean isSetTaskStatuses() {
     return this.taskStatuses != null;
   }
 
-  public void setTaskStatusIsSet(boolean value) {
+  public void setTaskStatusesIsSet(boolean value) {
     if (!value) {
       this.taskStatuses = null;
     }
@@ -504,15 +520,15 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     }
   }
 
-  public int getTaskErrorSize() {
+  public int getTaskErrorsSize() {
     return (this.taskErrors == null) ? 0 : this.taskErrors.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getTaskErrorIterator() {
+  public java.util.Iterator<org.apache.airavata.model.commons.ErrorModel> getTaskErrorsIterator() {
     return (this.taskErrors == null) ? null : this.taskErrors.iterator();
   }
 
-  public void addToTaskError(org.apache.airavata.model.commons.ErrorModel elem) {
+  public void addToTaskErrors(org.apache.airavata.model.commons.ErrorModel elem) {
     if (this.taskErrors == null) {
       this.taskErrors = new ArrayList<org.apache.airavata.model.commons.ErrorModel>();
     }
@@ -527,16 +543,16 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     this.taskErrors = taskErrors;
   }
 
-  public void unsetTaskError() {
+  public void unsetTaskErrors() {
     this.taskErrors = null;
   }
 
   /** Returns true if field taskErrors is set (has been assigned a value) and false otherwise */
-  public boolean isSetTaskError() {
+  public boolean isSetTaskErrors() {
     return this.taskErrors != null;
   }
 
-  public void setTaskErrorIsSet(boolean value) {
+  public void setTaskErrorsIsSet(boolean value) {
     if (!value) {
       this.taskErrors = null;
     }
@@ -622,11 +638,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       }
       break;
 
-    case TASK_STATUS:
+    case TASK_STATUSES:
       if (value == null) {
-        unsetTaskStatus();
+        unsetTaskStatuses();
       } else {
-        setTaskStatuses((List<org.apache.airavata.model.status.TaskStatus>) value);
+        setTaskStatuses((List<org.apache.airavata.model.status.TaskStatus>)value);
       }
       break;
 
@@ -646,11 +662,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       }
       break;
 
-    case TASK_ERROR:
+    case TASK_ERRORS:
       if (value == null) {
-        unsetTaskError();
+        unsetTaskErrors();
       } else {
-        setTaskErrors((List<org.apache.airavata.model.commons.ErrorModel>) value);
+        setTaskErrors((List<org.apache.airavata.model.commons.ErrorModel>)value);
       }
       break;
 
@@ -682,7 +698,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     case LAST_UPDATE_TIME:
       return getLastUpdateTime();
 
-    case TASK_STATUS:
+    case TASK_STATUSES:
       return getTaskStatuses();
 
     case TASK_DETAIL:
@@ -691,7 +707,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     case SUB_TASK_MODEL:
       return getSubTaskModel();
 
-    case TASK_ERROR:
+    case TASK_ERRORS:
       return getTaskErrors();
 
     case JOBS:
@@ -718,14 +734,14 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       return isSetCreationTime();
     case LAST_UPDATE_TIME:
       return isSetLastUpdateTime();
-    case TASK_STATUS:
-      return isSetTaskStatus();
+    case TASK_STATUSES:
+      return isSetTaskStatuses();
     case TASK_DETAIL:
       return isSetTaskDetail();
     case SUB_TASK_MODEL:
       return isSetSubTaskModel();
-    case TASK_ERROR:
-      return isSetTaskError();
+    case TASK_ERRORS:
+      return isSetTaskErrors();
     case JOBS:
       return isSetJobs();
     }
@@ -790,10 +806,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         return false;
     }
 
-    boolean this_present_taskStatus = true && this.isSetTaskStatus();
-    boolean that_present_taskStatus = true && that.isSetTaskStatus();
-    if (this_present_taskStatus || that_present_taskStatus) {
-      if (!(this_present_taskStatus && that_present_taskStatus))
+    boolean this_present_taskStatuses = true && this.isSetTaskStatuses();
+    boolean that_present_taskStatuses = true && that.isSetTaskStatuses();
+    if (this_present_taskStatuses || that_present_taskStatuses) {
+      if (!(this_present_taskStatuses && that_present_taskStatuses))
         return false;
       if (!this.taskStatuses.equals(that.taskStatuses))
         return false;
@@ -817,10 +833,10 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         return false;
     }
 
-    boolean this_present_taskError = true && this.isSetTaskError();
-    boolean that_present_taskError = true && that.isSetTaskError();
-    if (this_present_taskError || that_present_taskError) {
-      if (!(this_present_taskError && that_present_taskError))
+    boolean this_present_taskErrors = true && this.isSetTaskErrors();
+    boolean that_present_taskErrors = true && that.isSetTaskErrors();
+    if (this_present_taskErrors || that_present_taskErrors) {
+      if (!(this_present_taskErrors && that_present_taskErrors))
         return false;
       if (!this.taskErrors.equals(that.taskErrors))
         return false;
@@ -867,9 +883,9 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     if (present_lastUpdateTime)
       list.add(lastUpdateTime);
 
-    boolean present_taskStatus = true && (isSetTaskStatus());
-    list.add(present_taskStatus);
-    if (present_taskStatus)
+    boolean present_taskStatuses = true && (isSetTaskStatuses());
+    list.add(present_taskStatuses);
+    if (present_taskStatuses)
       list.add(taskStatuses);
 
     boolean present_taskDetail = true && (isSetTaskDetail());
@@ -882,9 +898,9 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
     if (present_subTaskModel)
       list.add(subTaskModel);
 
-    boolean present_taskError = true && (isSetTaskError());
-    list.add(present_taskError);
-    if (present_taskError)
+    boolean present_taskErrors = true && (isSetTaskErrors());
+    list.add(present_taskErrors);
+    if (present_taskErrors)
       list.add(taskErrors);
 
     boolean present_jobs = true && (isSetJobs());
@@ -953,11 +969,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetTaskStatus()).compareTo(other.isSetTaskStatus());
+    lastComparison = Boolean.valueOf(isSetTaskStatuses()).compareTo(other.isSetTaskStatuses());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetTaskStatus()) {
+    if (isSetTaskStatuses()) {
       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskStatuses, other.taskStatuses);
       if (lastComparison != 0) {
         return lastComparison;
@@ -983,11 +999,11 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(isSetTaskError()).compareTo(other.isSetTaskError());
+    lastComparison = Boolean.valueOf(isSetTaskErrors()).compareTo(other.isSetTaskErrors());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetTaskError()) {
+    if (isSetTaskErrors()) {
       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskErrors, other.taskErrors);
       if (lastComparison != 0) {
         return lastComparison;
@@ -1082,7 +1098,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       }
       first = false;
     }
-    if (isSetTaskError()) {
+    if (isSetTaskErrors()) {
       if (!first) sb.append(", ");
       sb.append("taskErrors:");
       if (this.taskErrors == null) {
@@ -1128,7 +1144,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'lastUpdateTime' is unset! Struct:" + toString());
     }
 
-    if (!isSetTaskStatus()) {
+    if (!isSetTaskStatuses()) {
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskStatuses' is unset! Struct:" + toString());
     }
 
@@ -1211,7 +1227,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // TASK_STATUS
+          case 6: // TASK_STATUSES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
@@ -1225,7 +1241,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
                 }
                 iprot.readListEnd();
               }
-              struct.setTaskStatusIsSet(true);
+              struct.setTaskStatusesIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -1246,7 +1262,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 9: // TASK_ERROR
+          case 9: // TASK_ERRORS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
@@ -1260,7 +1276,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
                 }
                 iprot.readListEnd();
               }
-              struct.setTaskErrorIsSet(true);
+              struct.setTaskErrorsIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -1319,7 +1335,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       oprot.writeI64(struct.lastUpdateTime);
       oprot.writeFieldEnd();
       if (struct.taskStatuses != null) {
-        oprot.writeFieldBegin(TASK_STATUS_FIELD_DESC);
+        oprot.writeFieldBegin(TASK_STATUSES_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.taskStatuses.size()));
           for (org.apache.airavata.model.status.TaskStatus _iter9 : struct.taskStatuses)
@@ -1345,8 +1361,8 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
         }
       }
       if (struct.taskErrors != null) {
-        if (struct.isSetTaskError()) {
-          oprot.writeFieldBegin(TASK_ERROR_FIELD_DESC);
+        if (struct.isSetTaskErrors()) {
+          oprot.writeFieldBegin(TASK_ERRORS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.taskErrors.size()));
             for (org.apache.airavata.model.commons.ErrorModel _iter10 : struct.taskErrors)
@@ -1408,7 +1424,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       if (struct.isSetSubTaskModel()) {
         optionals.set(1);
       }
-      if (struct.isSetTaskError()) {
+      if (struct.isSetTaskErrors()) {
         optionals.set(2);
       }
       if (struct.isSetJobs()) {
@@ -1421,7 +1437,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
       if (struct.isSetSubTaskModel()) {
         oprot.writeBinary(struct.subTaskModel);
       }
-      if (struct.isSetTaskError()) {
+      if (struct.isSetTaskErrors()) {
         {
           oprot.writeI32(struct.taskErrors.size());
           for (org.apache.airavata.model.commons.ErrorModel _iter13 : struct.taskErrors)
@@ -1465,7 +1481,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
           struct.taskStatuses.add(_elem16);
         }
       }
-      struct.setTaskStatusIsSet(true);
+      struct.setTaskStatusesIsSet(true);
       BitSet incoming = iprot.readBitSet(4);
       if (incoming.get(0)) {
         struct.taskDetail = iprot.readString();
@@ -1487,7 +1503,7 @@ public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._
             struct.taskErrors.add(_elem19);
           }
         }
-        struct.setTaskErrorIsSet(true);
+        struct.setTaskErrorsIsSet(true);
       }
       if (incoming.get(3)) {
         {

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/AppCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/AppCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/AppCatalogImpl.java
index c6203bb..0eb34f3 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/AppCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/AppCatalogImpl.java
@@ -56,4 +56,9 @@ public class AppCatalogImpl implements AppCatalog {
     public WorkflowCatalog getWorkflowCatalog() throws AppCatalogException {
         return new WorkflowCatalogImpl();
     }
+
+    @Override
+    public UsrResourceProfile getUserResourceProfile() throws AppCatalogException {
+        return new UsrResourceProfileImpl();
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
new file mode 100644
index 0000000..a3b0f9b
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
@@ -0,0 +1,356 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.impl;
+
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import org.apache.airavata.registry.core.app.catalog.resources.*;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogThriftConversion;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.UsrResourceProfile;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class UsrResourceProfileImpl implements UsrResourceProfile {
+    private final static Logger logger = LoggerFactory.getLogger(UsrResourceProfileImpl.class);
+
+    @Override
+    public String addUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws AppCatalogException {
+        try {
+            UserResourceProfileResource profileResource = new UserResourceProfileResource();
+            if (!userResourceProfile.getGatewayID().equals("")){
+                profileResource.setGatewayID(userResourceProfile.getGatewayID());
+            }
+            if (userResourceProfile.getCredentialStoreToken()!= null){
+                profileResource.setCredentialStoreToken(userResourceProfile.getCredentialStoreToken());
+            }
+            if (userResourceProfile.getIdentityServerTenant() != null){
+                profileResource.setIdentityServerTenant(userResourceProfile.getIdentityServerTenant());
+            }
+            if (userResourceProfile.getIdentityServerPwdCredToken() != null){
+                profileResource.setIdentityServerPwdCredToken(userResourceProfile.getIdentityServerPwdCredToken());
+            }
+            profileResource.setGatewayID(userResourceProfile.getGatewayID());
+            profileResource.save();
+            List<UserComputeResourcePreference> userComputeResourcePreferences = userResourceProfile.getUserComputeResourcePreferences();
+            if (userComputeResourcePreferences != null && !userComputeResourcePreferences.isEmpty()){
+                for (UserComputeResourcePreference preference : userComputeResourcePreferences ){
+                    UserComputeHostPreferenceResource resource = new UserComputeHostPreferenceResource();
+                    resource.setUserResourceProfileResource(profileResource);
+                    resource.setResourceId(preference.getComputeResourceId());
+                    ComputeResourceResource computeHostResource = new ComputeResourceResource();
+                    resource.setComputeHostResource((ComputeResourceResource)computeHostResource.get(preference.getComputeResourceId()));
+                    resource.setGatewayId(profileResource.getGatewayID());
+                    resource.setUserId(profileResource.getUserId());
+                    resource.setLoginUserName(preference.getLoginUserName());
+                    resource.setResourceCSToken(preference.getResourceSpecificCredentialStoreToken());
+                    resource.setBatchQueue(preference.getPreferredBatchQueue());
+                    resource.setProjectNumber(preference.getAllocationProjectNumber());
+                    resource.setScratchLocation(preference.getScratchLocation());
+                    resource.setQualityOfService(preference.getQualityOfService());
+                    resource.setReservation(preference.getReservation());
+                    if(preference.getReservationStartTime() > 0){
+                        resource.setReservationStartTime(AiravataUtils.getTime(preference.getReservationStartTime()));
+                    }
+
+                    if (preference.getReservationEndTime() > 0) {
+                        resource.setReservationEndTime(AiravataUtils.getTime(preference.getReservationEndTime()));
+                    }
+                    resource.save();
+                }
+            }
+            List<UserStoragePreference> dataStoragePreferences = userResourceProfile.getUserStoragePreferences();
+            if (dataStoragePreferences != null && !dataStoragePreferences.isEmpty()){
+                for (UserStoragePreference storagePreference : dataStoragePreferences){
+                    UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
+                    resource.setStorageResourceId(storagePreference.getStorageResourceId());
+                    resource.setGatewayId(profileResource.getGatewayID());
+                    resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
+                    resource.setLoginUserName(storagePreference.getLoginUserName());
+                    resource.setResourceCSToken(storagePreference.getResourceSpecificCredentialStoreToken());
+                    resource.setUserResourceProfileResource(profileResource);
+                    resource.save();
+                }
+            }
+            return profileResource.getGatewayID();
+        }catch (Exception e) {
+            logger.error("Error while saving gateway profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public void updateUserResourceProfile(String userId, String gatewayId, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile updatedProfile) throws AppCatalogException {
+        try {
+            UserResourceProfileResource profileResource = new UserResourceProfileResource();
+            UserResourceProfileResource existingUP = (UserResourceProfileResource)profileResource.get(userId);
+            existingUP.setCredentialStoreToken(updatedProfile.getCredentialStoreToken());
+            existingUP.setIdentityServerTenant(updatedProfile.getIdentityServerTenant());
+            existingUP.setIdentityServerPwdCredToken(updatedProfile.getIdentityServerPwdCredToken());
+            existingUP.save();
+
+            List<UserComputeResourcePreference> userComputeResourcePreferences = updatedProfile.getUserComputeResourcePreferences();
+            if (userComputeResourcePreferences != null && !userComputeResourcePreferences.isEmpty()){
+                for (UserComputeResourcePreference preference : userComputeResourcePreferences ){
+                    UserComputeHostPreferenceResource resource = new UserComputeHostPreferenceResource();
+                    resource.setUserResourceProfileResource(existingUP);
+                    resource.setResourceId(preference.getComputeResourceId());
+                    ComputeResourceResource computeHostResource = new ComputeResourceResource();
+                    resource.setComputeHostResource((ComputeResourceResource)computeHostResource.get(preference.getComputeResourceId()));
+                    resource.setUserId(userId);
+                    resource.setGatewayId(gatewayId);
+                    resource.setLoginUserName(preference.getLoginUserName());
+                    resource.setBatchQueue(preference.getPreferredBatchQueue());
+                    resource.setProjectNumber(preference.getAllocationProjectNumber());
+                    resource.setScratchLocation(preference.getScratchLocation());
+                    resource.setResourceCSToken(preference.getResourceSpecificCredentialStoreToken());
+                    resource.setQualityOfService(preference.getQualityOfService());
+                    resource.setReservation(preference.getReservation());
+                    if(preference.getReservationStartTime() > 0){
+                        resource.setReservationStartTime(AiravataUtils.getTime(preference.getReservationStartTime()));
+                    }
+
+                    if (preference.getReservationEndTime() > 0) {
+                        resource.setReservationEndTime(AiravataUtils.getTime(preference.getReservationEndTime()));
+                    }
+                    resource.save();
+                }
+            }
+            List<UserStoragePreference> dataStoragePreferences = updatedProfile.getUserStoragePreferences();
+            if (dataStoragePreferences != null && !dataStoragePreferences.isEmpty()){
+                for (UserStoragePreference storagePreference : dataStoragePreferences){
+                    UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
+                    resource.setStorageResourceId(storagePreference.getStorageResourceId());
+                    resource.setGatewayId(existingUP.getGatewayID());
+                    resource.setUserId(existingUP.getUserId());
+                    resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
+                    resource.setLoginUserName(storagePreference.getLoginUserName());
+                    resource.setResourceCSToken(storagePreference.getResourceSpecificCredentialStoreToken());
+                    resource.setUserResourceProfileResource(existingUP);
+                    resource.save();
+                }
+            }
+        }catch (Exception e) {
+            logger.error("Error while updating User Resource profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public UserResourceProfile getUserResourceProfile(String userId, String gatewayId) throws AppCatalogException {
+        try {
+            UserResourceProfileResource resource = new UserResourceProfileResource();
+            UserResourceProfileResource uResource = (UserResourceProfileResource)resource.get(userId);
+            UserComputeHostPreferenceResource prefResource = new UserComputeHostPreferenceResource();
+            List<AppCatalogResource> usercomputePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            List<UserComputeResourcePreference> userComputeResourcePreferences = AppCatalogThriftConversion.getUserComputeResourcePreferences(usercomputePrefList);
+            List<UserStoragePreference> dataStoragePreferences = getAllStoragePreferences(gatewayId);
+            return AppCatalogThriftConversion.getUserResourceProfile(uResource, userComputeResourcePreferences, dataStoragePreferences);
+        }catch (Exception e) {
+            logger.error("Error while retrieving gateway profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public boolean removeUserResourceProfile(String userId, String gatewayId) throws AppCatalogException {
+       try {
+           UserResourceProfileResource resource = new UserResourceProfileResource();
+           resource.remove(userId);
+           return true;
+       }catch (Exception e) {
+           logger.error("Error while deleting user resource profile...", e);
+           throw new AppCatalogException(e);
+       }
+    }
+
+    @Override
+    public boolean removeUserComputeResourcePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException {
+        try {
+            UserComputeHostPreferenceResource resource = new UserComputeHostPreferenceResource();
+            Map<String, String> ids = new HashMap<String, String>();
+            ids.put(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            ids.put(AppCatAbstractResource.UserComputeResourcePreferenceConstants.RESOURCE_ID, preferenceId);
+            resource.remove(ids);
+            return true;
+        }catch (Exception e) {
+            logger.error("Error while deleting user resource profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public boolean removeUserDataStoragePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException {
+        try {
+            UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
+            Map<String, String> ids = new HashMap<String, String>();
+            ids.put(AppCatAbstractResource.UserStoragePreferenceConstants.USER_ID, userId);
+            ids.put(AppCatAbstractResource.UserStoragePreferenceConstants.STORAGE_ID, preferenceId);
+            resource.remove(ids);
+            return true;
+        }catch (Exception e) {
+            logger.error("Error while deleting user resource profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public boolean isUserResourceProfileExists(String userId, String gatewayId) throws AppCatalogException {
+        try {
+            UserResourceProfileResource resource = new UserResourceProfileResource();
+            return resource.isExists(userId);
+        }catch (Exception e) {
+            logger.error("Error while retrieving user resource profile...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    /**
+     * @param gatewayId
+     * @param hostId
+     * @return ComputeResourcePreference
+     */
+    @Override
+    public UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayId, String hostId) throws AppCatalogException {
+        try {
+            UserComputeHostPreferenceResource prefResource = new UserComputeHostPreferenceResource();
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            for (AppCatalogResource resource : computePrefList){
+                UserComputeHostPreferenceResource cmP = (UserComputeHostPreferenceResource) resource;
+                if (cmP.getResourceId() != null && !cmP.getResourceId().equals("")){
+                    if (cmP.getResourceId().equals(hostId)){
+                        return AppCatalogThriftConversion.getUserComputeResourcePreference(cmP);
+                    }
+                }
+            }
+        }catch (Exception e) {
+            logger.error("Error while retrieving user compute resource preference...", e);
+            throw new AppCatalogException(e);
+        }
+        return null;
+    }
+
+    @Override
+    public UserStoragePreference getUserStoragePreference(String userId, String gatewayId, String storageId) throws AppCatalogException {
+        try {
+            UserStoragePreferenceResource prefResource = new UserStoragePreferenceResource();
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            for (AppCatalogResource resource : computePrefList){
+                UserStoragePreferenceResource dsP = (UserStoragePreferenceResource) resource;
+                if (dsP.getStorageResourceId() != null && !dsP.getStorageResourceId().equals("")){
+                    if (dsP.getStorageResourceId().equals(storageId)){
+                        return AppCatalogThriftConversion.getUserDataStoragePreference(dsP);
+                    }
+                }
+            }
+        }catch (Exception e) {
+            logger.error("Error while retrieving user data storage preference...", e);
+            throw new AppCatalogException(e);
+        }
+        return null;
+    }
+
+    /**
+     * @param userId
+     * @return
+     */
+
+    public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId) throws AppCatalogException {
+        try {
+            ComputeHostPreferenceResource prefResource = new ComputeHostPreferenceResource();
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            return AppCatalogThriftConversion.getUserComputeResourcePreferences(computePrefList);
+        }catch (Exception e) {
+            logger.error("Error while retrieving compute resource preference...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+
+    public List<UserStoragePreference> getAllStoragePreferences(String userId) throws AppCatalogException {
+        try {
+            UserStoragePreferenceResource prefResource = new UserStoragePreferenceResource();
+            List<AppCatalogResource> dataStoragePrefList = prefResource.get(AppCatAbstractResource.UserStoragePreferenceConstants.USER_ID, userId);
+            return AppCatalogThriftConversion.getUserDataStoragePreferences(dataStoragePrefList);
+        }catch (Exception e) {
+            logger.error("Error while retrieving data storage preference...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public List<String> getGatewayProfileIds(String gatewayName) throws AppCatalogException {
+        try {
+            UserResourceProfileResource profileResource = new UserResourceProfileResource();
+            List<AppCatalogResource> resourceList = profileResource.get(AppCatAbstractResource.UserResourceProfileConstants.GATEWAY_ID, gatewayName);
+            List<String> gatewayIds = new ArrayList<String>();
+            if (resourceList != null && !resourceList.isEmpty()){
+                for (AppCatalogResource resource : resourceList){
+                    gatewayIds.add(((UserResourceProfileResource)resource).getGatewayID());
+                }
+            }
+            return gatewayIds;
+        }catch (Exception e) {
+            logger.error("Error while retrieving gateway ids...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    @Override
+    public String getUserNamefromID(String userId, String gatewayID) throws AppCatalogException {
+//        This method implementation is critical
+        return null;
+    }
+
+    @Override
+    public List<UserResourceProfile> getAllUserResourceProfiles() throws AppCatalogException {
+        try {
+            List<UserResourceProfile> gatewayResourceProfileList = new ArrayList<UserResourceProfile>();
+            UserResourceProfileResource profileResource = new UserResourceProfileResource();
+            List<AppCatalogResource> resourceList = profileResource.getAll();
+            if (resourceList != null && !resourceList.isEmpty()){
+                for (AppCatalogResource resource : resourceList){
+                    UserResourceProfileResource userProfileResource = (UserResourceProfileResource)resource;
+                    List<UserComputeResourcePreference> computeResourcePreferences = getAllUserComputeResourcePreferences(userProfileResource.getUserId());
+                    List<UserStoragePreference> dataStoragePreferences = getAllStoragePreferences(userProfileResource.getUserId());
+                    UserResourceProfile gatewayResourceProfile = AppCatalogThriftConversion.getUserResourceProfile(userProfileResource, computeResourcePreferences, dataStoragePreferences);
+                    gatewayResourceProfileList.add(gatewayResourceProfile);
+                }
+            }
+            return gatewayResourceProfileList;
+        }catch (Exception e) {
+            logger.error("Error while retrieving gateway ids...", e);
+            throw new AppCatalogException(e);
+        }
+    }
+
+    public static Logger getLogger() {
+        return logger;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
new file mode 100644
index 0000000..cda901c
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
@@ -0,0 +1,186 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "USER_COMPUTE_RESOURCE_PREFERENCE")
+@IdClass(ComputeResourcePreferencePK.class)
+public class UserComputeResourcePreference {
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+    @Id
+    @Column(name = "RESOURCE_ID")
+    private String resourceId;
+    @Column(name = "PREFERED_BATCH_QUEUE")
+    private String batchQueue;
+    @Column(name = "SCRATCH_LOCATION")
+    private String scratchLocation;
+    @Column(name = "ALLOCATION_PROJECT_NUMBER")
+    private String projectNumber;
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String computeResourceCSToken;
+    @Column(name = "QUALITY_OF_SERVICE")
+    private String qualityOfService;
+    @Column(name = "RESERVATION")
+    private String reservation;
+    @Column(name = "RESERVATION_START_TIME")
+    private Timestamp reservationStartTime;
+    @Column(name = "RESERVATION_END_TIME")
+    private Timestamp reservationEndTime;
+
+
+    @ManyToOne(cascade= CascadeType.MERGE)
+    @JoinColumn(name = "RESOURCE_ID")
+    private ComputeResource computeHostResource;
+
+
+    @ManyToOne(cascade= CascadeType.MERGE)
+    @JoinColumn(name = "GATEWAY_ID")
+    private UserResourceProfile userResouceProfile;
+
+    /*User Id should be linked to user profile table once it is finalized and created*/
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getResourceId() {
+        return resourceId;
+    }
+
+    public void setResourceId(String resourceId) {
+        this.resourceId = resourceId;
+    }
+
+
+    public String getBatchQueue() {
+        return batchQueue;
+    }
+
+    public void setBatchQueue(String batchQueue) {
+        this.batchQueue = batchQueue;
+    }
+
+    public String getScratchLocation() {
+        return scratchLocation;
+    }
+
+    public void setScratchLocation(String scratchLocation) {
+        this.scratchLocation = scratchLocation;
+    }
+
+    public String getProjectNumber() {
+        return projectNumber;
+    }
+
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
+    }
+
+    public ComputeResource getComputeHostResource() {
+        return computeHostResource;
+    }
+
+    public void setComputeHostResource(ComputeResource computeHostResource) {
+        this.computeHostResource = computeHostResource;
+    }
+
+    public UserResourceProfile getUserResouceProfile() {
+        return userResouceProfile;
+    }
+
+    public void setUserResouceProfile(UserResourceProfile userResouceProfile) {
+        this.userResouceProfile = userResouceProfile;
+    }
+
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getComputeResourceCSToken() {
+        return computeResourceCSToken;
+    }
+
+    public void setComputeResourceCSToken(String computeResourceCSToken) {
+        this.computeResourceCSToken = computeResourceCSToken;
+    }
+
+
+    public String getQualityOfService() {
+        return qualityOfService;
+    }
+
+    public void setQualityOfService(String qualityOfService) {
+        this.qualityOfService = qualityOfService;
+    }
+
+    public String getReservation() {
+        return reservation;
+    }
+
+    public void setReservation(String reservation) {
+        this.reservation = reservation;
+    }
+
+    public Timestamp getReservationStartTime() {
+        return reservationStartTime;
+    }
+
+    public void setReservationStartTime(Timestamp reservationStratTime) {
+        this.reservationStartTime = reservationStratTime;
+    }
+
+    public Timestamp getReservationEndTime() {
+        return reservationEndTime;
+    }
+
+    public void setReservationEndTime(Timestamp reservationEndTime) {
+        this.reservationEndTime = reservationEndTime;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
new file mode 100644
index 0000000..d454852
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
@@ -0,0 +1,73 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+import java.io.Serializable;
+
+public class UserComputeResourcePreferencePK implements Serializable {
+    private String gatewayId;
+    private String resourceId;
+    private String userId;
+
+    public UserComputeResourcePreferencePK(String userId, String gatewayId, String resourceId) {
+        this.userId = userId;
+        this.gatewayId = gatewayId;
+        this.resourceId = resourceId;
+    }
+
+    public UserComputeResourcePreferencePK() {
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getResourceId() {
+        return resourceId;
+    }
+
+    public void setResourceId(String resourceId) {
+        this.resourceId = resourceId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
new file mode 100644
index 0000000..6d570de
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
@@ -0,0 +1,109 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "USER_RESOURCE_PROFILE")
+public class UserResourceProfile implements Serializable {
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayID;
+
+    @Column(name = "CREATION_TIME")
+    private Timestamp creationTime;
+
+    @Column(name = "UPDATE_TIME")
+    private Timestamp updateTime;
+
+    @Column(name = "CS_TOKEN")
+    private String credentialStoreToken;
+
+    @Column(name = "IDENTITY_SERVER_TENANT")
+    private String identityServerTenant;
+
+    @Column(name = "IDENTITY_SERVER_PWD_CRED_TOKEN")
+    private String identityServerPwdCredToken;
+
+    public Timestamp getCreationTime() {
+        return creationTime;
+    }
+
+    public void setCreationTime(Timestamp creationTime) {
+        this.creationTime = creationTime;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
+
+
+    public String getGatewayID() {
+        return gatewayID;
+    }
+
+    public String getUserID() {
+        return gatewayID;
+    }
+
+    public void setGatewayID(String gatewayID) {
+        this.gatewayID = gatewayID;
+    }
+
+    public String getCredentialStoreToken() {
+        return credentialStoreToken;
+    }
+
+    public void setCredentialStoreToken(String credentialStoreToken) {
+        this.credentialStoreToken = credentialStoreToken;
+    }
+
+    public String getIdentityServerTenant() {
+        return identityServerTenant;
+    }
+
+    public void setIdentityServerTenant(String identityServerTenant) {
+        this.identityServerTenant = identityServerTenant;
+    }
+
+    public String getIdentityServerPwdCredToken() {
+        return identityServerPwdCredToken;
+    }
+
+    public void setIdentityServerPwdCredToken(String identityServerPwdCredToken) {
+        this.identityServerPwdCredToken = identityServerPwdCredToken;
+    }
+}


[14/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
index e1b7b81..9e0b0b2 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Process/Types.php
@@ -48,7 +48,7 @@ class ProcessModel {
   /**
    * @var \Airavata\Model\Status\ProcessStatus[]
    */
-  public $processStatus = null;
+  public $processStatuses = null;
   /**
    * @var string
    */
@@ -88,7 +88,7 @@ class ProcessModel {
   /**
    * @var \Airavata\Model\Commons\ErrorModel[]
    */
-  public $processError = null;
+  public $processErrors = null;
   /**
    * @var string
    */
@@ -142,7 +142,7 @@ class ProcessModel {
           'type' => TType::I64,
           ),
         5 => array(
-          'var' => 'processStatus',
+          'var' => 'processStatuses',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
           'elem' => array(
@@ -203,7 +203,7 @@ class ProcessModel {
           'type' => TType::STRING,
           ),
         15 => array(
-          'var' => 'processError',
+          'var' => 'processErrors',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
           'elem' => array(
@@ -262,8 +262,8 @@ class ProcessModel {
       if (isset($vals['lastUpdateTime'])) {
         $this->lastUpdateTime = $vals['lastUpdateTime'];
       }
-      if (isset($vals['processStatus'])) {
-        $this->processStatus = $vals['processStatus'];
+      if (isset($vals['processStatuses'])) {
+        $this->processStatuses = $vals['processStatuses'];
       }
       if (isset($vals['processDetail'])) {
         $this->processDetail = $vals['processDetail'];
@@ -292,8 +292,8 @@ class ProcessModel {
       if (isset($vals['taskDag'])) {
         $this->taskDag = $vals['taskDag'];
       }
-      if (isset($vals['processError'])) {
-        $this->processError = $vals['processError'];
+      if (isset($vals['processErrors'])) {
+        $this->processErrors = $vals['processErrors'];
       }
       if (isset($vals['gatewayExecutionId'])) {
         $this->gatewayExecutionId = $vals['gatewayExecutionId'];
@@ -371,7 +371,7 @@ class ProcessModel {
           break;
         case 5:
           if ($ftype == TType::LST) {
-            $this->processStatus = array();
+            $this->processStatuses = array();
             $_size0 = 0;
             $_etype3 = 0;
             $xfer += $input->readListBegin($_etype3, $_size0);
@@ -380,7 +380,7 @@ class ProcessModel {
               $elem5 = null;
               $elem5 = new \Airavata\Model\Status\ProcessStatus();
               $xfer += $elem5->read($input);
-              $this->processStatus []= $elem5;
+              $this->processStatuses []= $elem5;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -486,7 +486,7 @@ class ProcessModel {
           break;
         case 15:
           if ($ftype == TType::LST) {
-            $this->processError = array();
+            $this->processErrors = array();
             $_size24 = 0;
             $_etype27 = 0;
             $xfer += $input->readListBegin($_etype27, $_size24);
@@ -495,7 +495,7 @@ class ProcessModel {
               $elem29 = null;
               $elem29 = new \Airavata\Model\Commons\ErrorModel();
               $xfer += $elem29->read($input);
-              $this->processError []= $elem29;
+              $this->processErrors []= $elem29;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -601,15 +601,15 @@ class ProcessModel {
       $xfer += $output->writeI64($this->lastUpdateTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->processStatus !== null) {
-      if (!is_array($this->processStatus)) {
+    if ($this->processStatuses !== null) {
+      if (!is_array($this->processStatuses)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('processStatus', TType::LST, 5);
+      $xfer += $output->writeFieldBegin('processStatuses', TType::LST, 5);
       {
-        $output->writeListBegin(TType::STRUCT, count($this->processStatus));
+        $output->writeListBegin(TType::STRUCT, count($this->processStatuses));
         {
-          foreach ($this->processStatus as $iter36)
+          foreach ($this->processStatuses as $iter36)
           {
             $xfer += $iter36->write($output);
           }
@@ -702,15 +702,15 @@ class ProcessModel {
       $xfer += $output->writeString($this->taskDag);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->processError !== null) {
-      if (!is_array($this->processError)) {
+    if ($this->processErrors !== null) {
+      if (!is_array($this->processErrors)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('processError', TType::LST, 15);
+      $xfer += $output->writeFieldBegin('processErrors', TType::LST, 15);
       {
-        $output->writeListBegin(TType::STRUCT, count($this->processError));
+        $output->writeListBegin(TType::STRUCT, count($this->processErrors));
         {
-          foreach ($this->processError as $iter40)
+          foreach ($this->processErrors as $iter40)
           {
             $xfer += $iter40->write($output);
           }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
index b655020..202fde8 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Task/Types.php
@@ -91,7 +91,7 @@ class TaskModel {
   /**
    * @var \Airavata\Model\Status\TaskStatus[]
    */
-  public $taskStatus = null;
+  public $taskStatuses = null;
   /**
    * @var string
    */
@@ -103,7 +103,7 @@ class TaskModel {
   /**
    * @var \Airavata\Model\Commons\ErrorModel[]
    */
-  public $taskError = null;
+  public $taskErrors = null;
   /**
    * @var \Airavata\Model\Job\JobModel[]
    */
@@ -133,7 +133,7 @@ class TaskModel {
           'type' => TType::I64,
           ),
         6 => array(
-          'var' => 'taskStatus',
+          'var' => 'taskStatuses',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
           'elem' => array(
@@ -150,7 +150,7 @@ class TaskModel {
           'type' => TType::STRING,
           ),
         9 => array(
-          'var' => 'taskError',
+          'var' => 'taskErrors',
           'type' => TType::LST,
           'etype' => TType::STRUCT,
           'elem' => array(
@@ -185,8 +185,8 @@ class TaskModel {
       if (isset($vals['lastUpdateTime'])) {
         $this->lastUpdateTime = $vals['lastUpdateTime'];
       }
-      if (isset($vals['taskStatus'])) {
-        $this->taskStatus = $vals['taskStatus'];
+      if (isset($vals['taskStatuses'])) {
+        $this->taskStatuses = $vals['taskStatuses'];
       }
       if (isset($vals['taskDetail'])) {
         $this->taskDetail = $vals['taskDetail'];
@@ -194,8 +194,8 @@ class TaskModel {
       if (isset($vals['subTaskModel'])) {
         $this->subTaskModel = $vals['subTaskModel'];
       }
-      if (isset($vals['taskError'])) {
-        $this->taskError = $vals['taskError'];
+      if (isset($vals['taskErrors'])) {
+        $this->taskErrors = $vals['taskErrors'];
       }
       if (isset($vals['jobs'])) {
         $this->jobs = $vals['jobs'];
@@ -259,7 +259,7 @@ class TaskModel {
           break;
         case 6:
           if ($ftype == TType::LST) {
-            $this->taskStatus = array();
+            $this->taskStatuses = array();
             $_size0 = 0;
             $_etype3 = 0;
             $xfer += $input->readListBegin($_etype3, $_size0);
@@ -268,7 +268,7 @@ class TaskModel {
               $elem5 = null;
               $elem5 = new \Airavata\Model\Status\TaskStatus();
               $xfer += $elem5->read($input);
-              $this->taskStatus []= $elem5;
+              $this->taskStatuses []= $elem5;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -291,7 +291,7 @@ class TaskModel {
           break;
         case 9:
           if ($ftype == TType::LST) {
-            $this->taskError = array();
+            $this->taskErrors = array();
             $_size6 = 0;
             $_etype9 = 0;
             $xfer += $input->readListBegin($_etype9, $_size6);
@@ -300,7 +300,7 @@ class TaskModel {
               $elem11 = null;
               $elem11 = new \Airavata\Model\Commons\ErrorModel();
               $xfer += $elem11->read($input);
-              $this->taskError []= $elem11;
+              $this->taskErrors []= $elem11;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -363,15 +363,15 @@ class TaskModel {
       $xfer += $output->writeI64($this->lastUpdateTime);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->taskStatus !== null) {
-      if (!is_array($this->taskStatus)) {
+    if ($this->taskStatuses !== null) {
+      if (!is_array($this->taskStatuses)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskStatus', TType::LST, 6);
+      $xfer += $output->writeFieldBegin('taskStatuses', TType::LST, 6);
       {
-        $output->writeListBegin(TType::STRUCT, count($this->taskStatus));
+        $output->writeListBegin(TType::STRUCT, count($this->taskStatuses));
         {
-          foreach ($this->taskStatus as $iter18)
+          foreach ($this->taskStatuses as $iter18)
           {
             $xfer += $iter18->write($output);
           }
@@ -390,15 +390,15 @@ class TaskModel {
       $xfer += $output->writeString($this->subTaskModel);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->taskError !== null) {
-      if (!is_array($this->taskError)) {
+    if ($this->taskErrors !== null) {
+      if (!is_array($this->taskErrors)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('taskError', TType::LST, 9);
+      $xfer += $output->writeFieldBegin('taskErrors', TType::LST, 9);
       {
-        $output->writeListBegin(TType::STRUCT, count($this->taskError));
+        $output->writeListBegin(TType::STRUCT, count($this->taskErrors));
         {
-          foreach ($this->taskError as $iter19)
+          foreach ($this->taskErrors as $iter19)
           {
             $xfer += $iter19->write($output);
           }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index 0a94e16..6adbf21 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -153,6 +153,19 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  bool updateGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageId, StoragePreference storagePreference)')
   print('  bool deleteGatewayComputeResourcePreference(AuthzToken authzToken, string gatewayID, string computeResourceId)')
   print('  bool deleteGatewayStoragePreference(AuthzToken authzToken, string gatewayID, string storageId)')
+  print('  string registerUserResourceProfile(AuthzToken authzToken, UserResourceProfile userResourceProfile)')
+  print('  UserResourceProfile getUserResourceProfile(AuthzToken authzToken, string userId)')
+  print('  bool updateUserResourceProfile(AuthzToken authzToken, string userId, UserResourceProfile userResourceProfile)')
+  print('  bool deleteUserResourceProfile(AuthzToken authzToken, string userId)')
+  print('  bool addUserComputeResourcePreference(AuthzToken authzToken, string userId, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+  print('  bool addUserStoragePreference(AuthzToken authzToken, string userId, string storageResourceId, StoragePreference storagePreference)')
+  print('  ComputeResourcePreference getUserComputeResourcePreference(AuthzToken authzToken, string userId, string computeResourceId)')
+  print('  StoragePreference getUserStoragePreference(AuthzToken authzToken, string userId, string storageResourceId)')
+  print('   getAllUserResourceProfiles(AuthzToken authzToken)')
+  print('  bool updateUserComputeResourcePreference(AuthzToken authzToken, string userId, string computeResourceId, ComputeResourcePreference computeResourcePreference)')
+  print('  bool updateUserStoragePreference(AuthzToken authzToken, string userId, string storageId, StoragePreference storagePreference)')
+  print('  bool deleteUserComputeResourcePreference(AuthzToken authzToken, string userId, string computeResourceId)')
+  print('  bool deleteUserStoragePreference(AuthzToken authzToken, string userId, string storageId)')
   print('   getAllWorkflows(AuthzToken authzToken, string gatewayId)')
   print('  WorkflowModel getWorkflow(AuthzToken authzToken, string workflowTemplateId)')
   print('  void deleteWorkflow(AuthzToken authzToken, string workflowTemplateId)')
@@ -1003,6 +1016,84 @@ elif cmd == 'deleteGatewayStoragePreference':
     sys.exit(1)
   pp.pprint(client.deleteGatewayStoragePreference(eval(args[0]),args[1],args[2],))
 
+elif cmd == 'registerUserResourceProfile':
+  if len(args) != 2:
+    print('registerUserResourceProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.registerUserResourceProfile(eval(args[0]),eval(args[1]),))
+
+elif cmd == 'getUserResourceProfile':
+  if len(args) != 2:
+    print('getUserResourceProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.getUserResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'updateUserResourceProfile':
+  if len(args) != 3:
+    print('updateUserResourceProfile requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.updateUserResourceProfile(eval(args[0]),args[1],eval(args[2]),))
+
+elif cmd == 'deleteUserResourceProfile':
+  if len(args) != 2:
+    print('deleteUserResourceProfile requires 2 args')
+    sys.exit(1)
+  pp.pprint(client.deleteUserResourceProfile(eval(args[0]),args[1],))
+
+elif cmd == 'addUserComputeResourcePreference':
+  if len(args) != 4:
+    print('addUserComputeResourcePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.addUserComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'addUserStoragePreference':
+  if len(args) != 4:
+    print('addUserStoragePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.addUserStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'getUserComputeResourcePreference':
+  if len(args) != 3:
+    print('getUserComputeResourcePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getUserComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getUserStoragePreference':
+  if len(args) != 3:
+    print('getUserStoragePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.getUserStoragePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'getAllUserResourceProfiles':
+  if len(args) != 1:
+    print('getAllUserResourceProfiles requires 1 args')
+    sys.exit(1)
+  pp.pprint(client.getAllUserResourceProfiles(eval(args[0]),))
+
+elif cmd == 'updateUserComputeResourcePreference':
+  if len(args) != 4:
+    print('updateUserComputeResourcePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.updateUserComputeResourcePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'updateUserStoragePreference':
+  if len(args) != 4:
+    print('updateUserStoragePreference requires 4 args')
+    sys.exit(1)
+  pp.pprint(client.updateUserStoragePreference(eval(args[0]),args[1],args[2],eval(args[3]),))
+
+elif cmd == 'deleteUserComputeResourcePreference':
+  if len(args) != 3:
+    print('deleteUserComputeResourcePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.deleteUserComputeResourcePreference(eval(args[0]),args[1],args[2],))
+
+elif cmd == 'deleteUserStoragePreference':
+  if len(args) != 3:
+    print('deleteUserStoragePreference requires 3 args')
+    sys.exit(1)
+  pp.pprint(client.deleteUserStoragePreference(eval(args[0]),args[1],args[2],))
+
 elif cmd == 'getAllWorkflows':
   if len(args) != 2:
     print('getAllWorkflows requires 2 args')


[18/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 01b85ae..bbae060 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -2426,10 +2426,242 @@ class AiravataIf {
   virtual bool deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId) = 0;
 
   /**
-   * Delete the Storage Resource Preference of a registered gateway profile.
+   * Register User Resource Profile.
    * 
-   * @param gatewayID
-   *   The identifier of the gateway profile to be deleted.
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   *    The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+   *      resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param authzToken
+   * @param userResourceProfile
+   */
+  virtual void registerUserResourceProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile) = 0;
+
+  /**
+   * Fetch the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource profile.
+   * 
+   * @return UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   */
+  virtual void getUserResourceProfile( ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) = 0;
+
+  /**
+   * Update a User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be updated.
+   * 
+   * @param UserResourceProfile
+   *    User Resource Profile Object.
+   * 
+   * @return status
+   *   Returns a success/failure of the update.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param userResourceProfile
+   */
+  virtual bool updateUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile) = 0;
+
+  /**
+   * Delete the given User Resource Profile.
+   * 
+   * @param userId
+   *   The identifier for the requested user resource to be deleted.
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   */
+  virtual bool deleteUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId) = 0;
+
+  /**
+   * Add a Compute Resource Preference to a registered User profile.
+   * 
+   * @param userId
+   *   The identifier for the User resource profile to be added.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
+  virtual bool addUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+
+  /**
+   * Add a Storage Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be added.
+   * 
+   * @param storageResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be added to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+   *    Instead an update should be used.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageResourceId
+   * @param storagePreference
+   */
+  virtual bool addUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& storagePreference) = 0;
+
+  /**
+   * 
+   * Fetch a Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be requested
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return computeResourcePreference
+   *   Returns the ComputeResourcePreference object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   */
+  virtual void getUserComputeResourcePreference( ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId) = 0;
+
+  /**
+   * 
+   * Fetch a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+   * 
+   * @param storageResourceId
+   *   Identifier of the Stprage Preference required to be fetched.
+   * 
+   * @return StoragePreference
+   *   Returns the StoragePreference object.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageResourceId
+   */
+  virtual void getUserStoragePreference( ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageResourceId) = 0;
+
+  /**
+   * 
+   * Fetch all user resources Profiles registered
+   * 
+   * @return UserResourceProfile
+   *   Returns all the UserResourcePrifle list object.
+   * 
+   * 
+   * 
+   * @param authzToken
+   */
+  virtual void getAllUserResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 0;
+
+  /**
+   * Update a Compute Resource Preference to a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user profile to be updated.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @param computeResourcePreference
+   *   The ComputeResourcePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   * @param computeResourcePreference
+   */
+  virtual bool updateUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& computeResourcePreference) = 0;
+
+  /**
+   * Update a Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user resource profile to be updated.
+   * 
+   * @param storageId
+   *   The Storage resource identifier of the one that you want to update
+   * 
+   * @param storagePreference
+   *   The storagePreference object to be updated to the resource profile.
+   * 
+   * @return status
+   *   Returns a success/failure of the updation.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param storageId
+   * @param storagePreference
+   */
+  virtual bool updateUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageId, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& storagePreference) = 0;
+
+  /**
+   * Delete the Compute Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier for the user resource profile to be deleted.
+   * 
+   * @param computeResourceId
+   *   Preferences related to a particular compute resource
+   * 
+   * @return status
+   *   Returns a success/failure of the deletion.
+   * 
+   * 
+   * @param authzToken
+   * @param userId
+   * @param computeResourceId
+   */
+  virtual bool deleteUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& computeResourceId) = 0;
+
+  /**
+   * Delete the Storage Resource Preference of a registered user resource profile.
+   * 
+   * @param userId
+   *   The identifier of the user profile to be deleted.
    * 
    * @param storageId
    *   ID of the storage preference you want to delete.
@@ -2439,8 +2671,10 @@ class AiravataIf {
    * 
    * 
    * @param authzToken
-   * @param gatewayId
+   * @param userId
+   * @param storageId
    */
+  virtual bool deleteUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId, const std::string& storageId) = 0;
   virtual void getAllWorkflows(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0;
 
   /**
@@ -2950,6 +3184,53 @@ class AiravataNull : virtual public AiravataIf {
     bool _return = false;
     return _return;
   }
+  void registerUserResourceProfile(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& /* userResourceProfile */) {
+    return;
+  }
+  void getUserResourceProfile( ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */) {
+    return;
+  }
+  bool updateUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& /* userResourceProfile */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */) {
+    bool _return = false;
+    return _return;
+  }
+  bool addUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& /* computeResourcePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  bool addUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* storageResourceId */, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& /* storagePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  void getUserComputeResourcePreference( ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* computeResourceId */) {
+    return;
+  }
+  void getUserStoragePreference( ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* storageResourceId */) {
+    return;
+  }
+  void getAllUserResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */) {
+    return;
+  }
+  bool updateUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* computeResourceId */, const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& /* computeResourcePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  bool updateUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* storageId */, const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& /* storagePreference */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteUserComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* computeResourceId */) {
+    bool _return = false;
+    return _return;
+  }
+  bool deleteUserStoragePreference(const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* userId */, const std::string& /* storageId */) {
+    bool _return = false;
+    return _return;
+  }
   void getAllWorkflows(std::vector<std::string> & /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */, const std::string& /* gatewayId */) {
     return;
   }
@@ -21137,35 +21418,35 @@ class Airavata_deleteGatewayStoragePreference_presult {
 };
 
 
-class Airavata_getAllWorkflows_args {
+class Airavata_registerUserResourceProfile_args {
  public:
 
-  Airavata_getAllWorkflows_args(const Airavata_getAllWorkflows_args&);
-  Airavata_getAllWorkflows_args& operator=(const Airavata_getAllWorkflows_args&);
-  Airavata_getAllWorkflows_args() : gatewayId() {
+  Airavata_registerUserResourceProfile_args(const Airavata_registerUserResourceProfile_args&);
+  Airavata_registerUserResourceProfile_args& operator=(const Airavata_registerUserResourceProfile_args&);
+  Airavata_registerUserResourceProfile_args() {
   }
 
-  virtual ~Airavata_getAllWorkflows_args() throw();
+  virtual ~Airavata_registerUserResourceProfile_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-  std::string gatewayId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile userResourceProfile;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_gatewayId(const std::string& val);
+  void __set_userResourceProfile(const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& val);
 
-  bool operator == (const Airavata_getAllWorkflows_args & rhs) const
+  bool operator == (const Airavata_registerUserResourceProfile_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
-    if (!(gatewayId == rhs.gatewayId))
+    if (!(userResourceProfile == rhs.userResourceProfile))
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAllWorkflows_args &rhs) const {
+  bool operator != (const Airavata_registerUserResourceProfile_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllWorkflows_args & ) const;
+  bool operator < (const Airavata_registerUserResourceProfile_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -21173,45 +21454,45 @@ class Airavata_getAllWorkflows_args {
 };
 
 
-class Airavata_getAllWorkflows_pargs {
+class Airavata_registerUserResourceProfile_pargs {
  public:
 
 
-  virtual ~Airavata_getAllWorkflows_pargs() throw();
+  virtual ~Airavata_registerUserResourceProfile_pargs() throw();
   const  ::apache::airavata::model::security::AuthzToken* authzToken;
-  const std::string* gatewayId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile* userResourceProfile;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAllWorkflows_result__isset {
-  _Airavata_getAllWorkflows_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_registerUserResourceProfile_result__isset {
+  _Airavata_registerUserResourceProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getAllWorkflows_result__isset;
+} _Airavata_registerUserResourceProfile_result__isset;
 
-class Airavata_getAllWorkflows_result {
+class Airavata_registerUserResourceProfile_result {
  public:
 
-  Airavata_getAllWorkflows_result(const Airavata_getAllWorkflows_result&);
-  Airavata_getAllWorkflows_result& operator=(const Airavata_getAllWorkflows_result&);
-  Airavata_getAllWorkflows_result() {
+  Airavata_registerUserResourceProfile_result(const Airavata_registerUserResourceProfile_result&);
+  Airavata_registerUserResourceProfile_result& operator=(const Airavata_registerUserResourceProfile_result&);
+  Airavata_registerUserResourceProfile_result() : success() {
   }
 
-  virtual ~Airavata_getAllWorkflows_result() throw();
-  std::vector<std::string>  success;
+  virtual ~Airavata_registerUserResourceProfile_result() throw();
+  std::string success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getAllWorkflows_result__isset __isset;
+  _Airavata_registerUserResourceProfile_result__isset __isset;
 
-  void __set_success(const std::vector<std::string> & val);
+  void __set_success(const std::string& val);
 
   void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
 
@@ -21221,7 +21502,7 @@ class Airavata_getAllWorkflows_result {
 
   void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
 
-  bool operator == (const Airavata_getAllWorkflows_result & rhs) const
+  bool operator == (const Airavata_registerUserResourceProfile_result & rhs) const
   {
     if (!(success == rhs.success))
       return false;
@@ -21235,73 +21516,73 @@ class Airavata_getAllWorkflows_result {
       return false;
     return true;
   }
-  bool operator != (const Airavata_getAllWorkflows_result &rhs) const {
+  bool operator != (const Airavata_registerUserResourceProfile_result &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getAllWorkflows_result & ) const;
+  bool operator < (const Airavata_registerUserResourceProfile_result & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
-typedef struct _Airavata_getAllWorkflows_presult__isset {
-  _Airavata_getAllWorkflows_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+typedef struct _Airavata_registerUserResourceProfile_presult__isset {
+  _Airavata_registerUserResourceProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success :1;
   bool ire :1;
   bool ace :1;
   bool ase :1;
   bool ae :1;
-} _Airavata_getAllWorkflows_presult__isset;
+} _Airavata_registerUserResourceProfile_presult__isset;
 
-class Airavata_getAllWorkflows_presult {
+class Airavata_registerUserResourceProfile_presult {
  public:
 
 
-  virtual ~Airavata_getAllWorkflows_presult() throw();
-  std::vector<std::string> * success;
+  virtual ~Airavata_registerUserResourceProfile_presult() throw();
+  std::string* success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
    ::apache::airavata::api::error::AuthorizationException ae;
 
-  _Airavata_getAllWorkflows_presult__isset __isset;
+  _Airavata_registerUserResourceProfile_presult__isset __isset;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
 
 };
 
 
-class Airavata_getWorkflow_args {
+class Airavata_getUserResourceProfile_args {
  public:
 
-  Airavata_getWorkflow_args(const Airavata_getWorkflow_args&);
-  Airavata_getWorkflow_args& operator=(const Airavata_getWorkflow_args&);
-  Airavata_getWorkflow_args() : workflowTemplateId() {
+  Airavata_getUserResourceProfile_args(const Airavata_getUserResourceProfile_args&);
+  Airavata_getUserResourceProfile_args& operator=(const Airavata_getUserResourceProfile_args&);
+  Airavata_getUserResourceProfile_args() : userId() {
   }
 
-  virtual ~Airavata_getWorkflow_args() throw();
+  virtual ~Airavata_getUserResourceProfile_args() throw();
    ::apache::airavata::model::security::AuthzToken authzToken;
-  std::string workflowTemplateId;
+  std::string userId;
 
   void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
 
-  void __set_workflowTemplateId(const std::string& val);
+  void __set_userId(const std::string& val);
 
-  bool operator == (const Airavata_getWorkflow_args & rhs) const
+  bool operator == (const Airavata_getUserResourceProfile_args & rhs) const
   {
     if (!(authzToken == rhs.authzToken))
       return false;
-    if (!(workflowTemplateId == rhs.workflowTemplateId))
+    if (!(userId == rhs.userId))
       return false;
     return true;
   }
-  bool operator != (const Airavata_getWorkflow_args &rhs) const {
+  bool operator != (const Airavata_getUserResourceProfile_args &rhs) const {
     return !(*this == rhs);
   }
 
-  bool operator < (const Airavata_getWorkflow_args & ) const;
+  bool operator < (const Airavata_getUserResourceProfile_args & ) const;
 
   uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -21309,7 +21590,1847 @@ class Airavata_getWorkflow_args {
 };
 
 
-class Airavata_getWorkflow_pargs {
+class Airavata_getUserResourceProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_getUserResourceProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserResourceProfile_result__isset {
+  _Airavata_getUserResourceProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserResourceProfile_result__isset;
+
+class Airavata_getUserResourceProfile_result {
+ public:
+
+  Airavata_getUserResourceProfile_result(const Airavata_getUserResourceProfile_result&);
+  Airavata_getUserResourceProfile_result& operator=(const Airavata_getUserResourceProfile_result&);
+  Airavata_getUserResourceProfile_result() {
+  }
+
+  virtual ~Airavata_getUserResourceProfile_result() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserResourceProfile_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getUserResourceProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserResourceProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserResourceProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserResourceProfile_presult__isset {
+  _Airavata_getUserResourceProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserResourceProfile_presult__isset;
+
+class Airavata_getUserResourceProfile_presult {
+ public:
+
+
+  virtual ~Airavata_getUserResourceProfile_presult() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserResourceProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateUserResourceProfile_args {
+ public:
+
+  Airavata_updateUserResourceProfile_args(const Airavata_updateUserResourceProfile_args&);
+  Airavata_updateUserResourceProfile_args& operator=(const Airavata_updateUserResourceProfile_args&);
+  Airavata_updateUserResourceProfile_args() : userId() {
+  }
+
+  virtual ~Airavata_updateUserResourceProfile_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile userResourceProfile;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_userResourceProfile(const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& val);
+
+  bool operator == (const Airavata_updateUserResourceProfile_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(userResourceProfile == rhs.userResourceProfile))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserResourceProfile_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserResourceProfile_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateUserResourceProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_updateUserResourceProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile* userResourceProfile;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserResourceProfile_result__isset {
+  _Airavata_updateUserResourceProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserResourceProfile_result__isset;
+
+class Airavata_updateUserResourceProfile_result {
+ public:
+
+  Airavata_updateUserResourceProfile_result(const Airavata_updateUserResourceProfile_result&);
+  Airavata_updateUserResourceProfile_result& operator=(const Airavata_updateUserResourceProfile_result&);
+  Airavata_updateUserResourceProfile_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateUserResourceProfile_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserResourceProfile_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_updateUserResourceProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserResourceProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserResourceProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserResourceProfile_presult__isset {
+  _Airavata_updateUserResourceProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserResourceProfile_presult__isset;
+
+class Airavata_updateUserResourceProfile_presult {
+ public:
+
+
+  virtual ~Airavata_updateUserResourceProfile_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserResourceProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteUserResourceProfile_args {
+ public:
+
+  Airavata_deleteUserResourceProfile_args(const Airavata_deleteUserResourceProfile_args&);
+  Airavata_deleteUserResourceProfile_args& operator=(const Airavata_deleteUserResourceProfile_args&);
+  Airavata_deleteUserResourceProfile_args() : userId() {
+  }
+
+  virtual ~Airavata_deleteUserResourceProfile_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  bool operator == (const Airavata_deleteUserResourceProfile_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserResourceProfile_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserResourceProfile_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteUserResourceProfile_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteUserResourceProfile_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserResourceProfile_result__isset {
+  _Airavata_deleteUserResourceProfile_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserResourceProfile_result__isset;
+
+class Airavata_deleteUserResourceProfile_result {
+ public:
+
+  Airavata_deleteUserResourceProfile_result(const Airavata_deleteUserResourceProfile_result&);
+  Airavata_deleteUserResourceProfile_result& operator=(const Airavata_deleteUserResourceProfile_result&);
+  Airavata_deleteUserResourceProfile_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteUserResourceProfile_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserResourceProfile_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_deleteUserResourceProfile_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserResourceProfile_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserResourceProfile_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserResourceProfile_presult__isset {
+  _Airavata_deleteUserResourceProfile_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserResourceProfile_presult__isset;
+
+class Airavata_deleteUserResourceProfile_presult {
+ public:
+
+
+  virtual ~Airavata_deleteUserResourceProfile_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserResourceProfile_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_addUserComputeResourcePreference_args {
+ public:
+
+  Airavata_addUserComputeResourcePreference_args(const Airavata_addUserComputeResourcePreference_args&);
+  Airavata_addUserComputeResourcePreference_args& operator=(const Airavata_addUserComputeResourcePreference_args&);
+  Airavata_addUserComputeResourcePreference_args() : userId(), computeResourceId() {
+  }
+
+  virtual ~Airavata_addUserComputeResourcePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string computeResourceId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference computeResourcePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_computeResourceId(const std::string& val);
+
+  void __set_computeResourcePreference(const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& val);
+
+  bool operator == (const Airavata_addUserComputeResourcePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    if (!(computeResourcePreference == rhs.computeResourcePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addUserComputeResourcePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addUserComputeResourcePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_addUserComputeResourcePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_addUserComputeResourcePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* computeResourceId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference* computeResourcePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserComputeResourcePreference_result__isset {
+  _Airavata_addUserComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserComputeResourcePreference_result__isset;
+
+class Airavata_addUserComputeResourcePreference_result {
+ public:
+
+  Airavata_addUserComputeResourcePreference_result(const Airavata_addUserComputeResourcePreference_result&);
+  Airavata_addUserComputeResourcePreference_result& operator=(const Airavata_addUserComputeResourcePreference_result&);
+  Airavata_addUserComputeResourcePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_addUserComputeResourcePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserComputeResourcePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_addUserComputeResourcePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addUserComputeResourcePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addUserComputeResourcePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserComputeResourcePreference_presult__isset {
+  _Airavata_addUserComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserComputeResourcePreference_presult__isset;
+
+class Airavata_addUserComputeResourcePreference_presult {
+ public:
+
+
+  virtual ~Airavata_addUserComputeResourcePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserComputeResourcePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_addUserStoragePreference_args {
+ public:
+
+  Airavata_addUserStoragePreference_args(const Airavata_addUserStoragePreference_args&);
+  Airavata_addUserStoragePreference_args& operator=(const Airavata_addUserStoragePreference_args&);
+  Airavata_addUserStoragePreference_args() : userId(), storageResourceId() {
+  }
+
+  virtual ~Airavata_addUserStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string storageResourceId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference storagePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_storageResourceId(const std::string& val);
+
+  void __set_storagePreference(const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& val);
+
+  bool operator == (const Airavata_addUserStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(storageResourceId == rhs.storageResourceId))
+      return false;
+    if (!(storagePreference == rhs.storagePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addUserStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addUserStoragePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_addUserStoragePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_addUserStoragePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* storageResourceId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference* storagePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserStoragePreference_result__isset {
+  _Airavata_addUserStoragePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserStoragePreference_result__isset;
+
+class Airavata_addUserStoragePreference_result {
+ public:
+
+  Airavata_addUserStoragePreference_result(const Airavata_addUserStoragePreference_result&);
+  Airavata_addUserStoragePreference_result& operator=(const Airavata_addUserStoragePreference_result&);
+  Airavata_addUserStoragePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_addUserStoragePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserStoragePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_addUserStoragePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_addUserStoragePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_addUserStoragePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_addUserStoragePreference_presult__isset {
+  _Airavata_addUserStoragePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_addUserStoragePreference_presult__isset;
+
+class Airavata_addUserStoragePreference_presult {
+ public:
+
+
+  virtual ~Airavata_addUserStoragePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_addUserStoragePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getUserComputeResourcePreference_args {
+ public:
+
+  Airavata_getUserComputeResourcePreference_args(const Airavata_getUserComputeResourcePreference_args&);
+  Airavata_getUserComputeResourcePreference_args& operator=(const Airavata_getUserComputeResourcePreference_args&);
+  Airavata_getUserComputeResourcePreference_args() : userId(), computeResourceId() {
+  }
+
+  virtual ~Airavata_getUserComputeResourcePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string computeResourceId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_computeResourceId(const std::string& val);
+
+  bool operator == (const Airavata_getUserComputeResourcePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserComputeResourcePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserComputeResourcePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getUserComputeResourcePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_getUserComputeResourcePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* computeResourceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserComputeResourcePreference_result__isset {
+  _Airavata_getUserComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserComputeResourcePreference_result__isset;
+
+class Airavata_getUserComputeResourcePreference_result {
+ public:
+
+  Airavata_getUserComputeResourcePreference_result(const Airavata_getUserComputeResourcePreference_result&);
+  Airavata_getUserComputeResourcePreference_result& operator=(const Airavata_getUserComputeResourcePreference_result&);
+  Airavata_getUserComputeResourcePreference_result() {
+  }
+
+  virtual ~Airavata_getUserComputeResourcePreference_result() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserComputeResourcePreference_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getUserComputeResourcePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserComputeResourcePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserComputeResourcePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserComputeResourcePreference_presult__isset {
+  _Airavata_getUserComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserComputeResourcePreference_presult__isset;
+
+class Airavata_getUserComputeResourcePreference_presult {
+ public:
+
+
+  virtual ~Airavata_getUserComputeResourcePreference_presult() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserComputeResourcePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getUserStoragePreference_args {
+ public:
+
+  Airavata_getUserStoragePreference_args(const Airavata_getUserStoragePreference_args&);
+  Airavata_getUserStoragePreference_args& operator=(const Airavata_getUserStoragePreference_args&);
+  Airavata_getUserStoragePreference_args() : userId(), storageResourceId() {
+  }
+
+  virtual ~Airavata_getUserStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string storageResourceId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_storageResourceId(const std::string& val);
+
+  bool operator == (const Airavata_getUserStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(storageResourceId == rhs.storageResourceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserStoragePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getUserStoragePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_getUserStoragePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* storageResourceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserStoragePreference_result__isset {
+  _Airavata_getUserStoragePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserStoragePreference_result__isset;
+
+class Airavata_getUserStoragePreference_result {
+ public:
+
+  Airavata_getUserStoragePreference_result(const Airavata_getUserStoragePreference_result&);
+  Airavata_getUserStoragePreference_result& operator=(const Airavata_getUserStoragePreference_result&);
+  Airavata_getUserStoragePreference_result() {
+  }
+
+  virtual ~Airavata_getUserStoragePreference_result() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserStoragePreference_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getUserStoragePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getUserStoragePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getUserStoragePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getUserStoragePreference_presult__isset {
+  _Airavata_getUserStoragePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getUserStoragePreference_presult__isset;
+
+class Airavata_getUserStoragePreference_presult {
+ public:
+
+
+  virtual ~Airavata_getUserStoragePreference_presult() throw();
+   ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getUserStoragePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllUserResourceProfiles_args {
+ public:
+
+  Airavata_getAllUserResourceProfiles_args(const Airavata_getAllUserResourceProfiles_args&);
+  Airavata_getAllUserResourceProfiles_args& operator=(const Airavata_getAllUserResourceProfiles_args&);
+  Airavata_getAllUserResourceProfiles_args() {
+  }
+
+  virtual ~Airavata_getAllUserResourceProfiles_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  bool operator == (const Airavata_getAllUserResourceProfiles_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllUserResourceProfiles_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllUserResourceProfiles_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllUserResourceProfiles_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllUserResourceProfiles_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllUserResourceProfiles_result__isset {
+  _Airavata_getAllUserResourceProfiles_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllUserResourceProfiles_result__isset;
+
+class Airavata_getAllUserResourceProfiles_result {
+ public:
+
+  Airavata_getAllUserResourceProfiles_result(const Airavata_getAllUserResourceProfiles_result&);
+  Airavata_getAllUserResourceProfiles_result& operator=(const Airavata_getAllUserResourceProfiles_result&);
+  Airavata_getAllUserResourceProfiles_result() {
+  }
+
+  virtual ~Airavata_getAllUserResourceProfiles_result() throw();
+  std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllUserResourceProfiles_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> & val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getAllUserResourceProfiles_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllUserResourceProfiles_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllUserResourceProfiles_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllUserResourceProfiles_presult__isset {
+  _Airavata_getAllUserResourceProfiles_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllUserResourceProfiles_presult__isset;
+
+class Airavata_getAllUserResourceProfiles_presult {
+ public:
+
+
+  virtual ~Airavata_getAllUserResourceProfiles_presult() throw();
+  std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllUserResourceProfiles_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateUserComputeResourcePreference_args {
+ public:
+
+  Airavata_updateUserComputeResourcePreference_args(const Airavata_updateUserComputeResourcePreference_args&);
+  Airavata_updateUserComputeResourcePreference_args& operator=(const Airavata_updateUserComputeResourcePreference_args&);
+  Airavata_updateUserComputeResourcePreference_args() : userId(), computeResourceId() {
+  }
+
+  virtual ~Airavata_updateUserComputeResourcePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string computeResourceId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference computeResourcePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_computeResourceId(const std::string& val);
+
+  void __set_computeResourcePreference(const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference& val);
+
+  bool operator == (const Airavata_updateUserComputeResourcePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    if (!(computeResourcePreference == rhs.computeResourcePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserComputeResourcePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserComputeResourcePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateUserComputeResourcePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_updateUserComputeResourcePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* computeResourceId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::ComputeResourcePreference* computeResourcePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserComputeResourcePreference_result__isset {
+  _Airavata_updateUserComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserComputeResourcePreference_result__isset;
+
+class Airavata_updateUserComputeResourcePreference_result {
+ public:
+
+  Airavata_updateUserComputeResourcePreference_result(const Airavata_updateUserComputeResourcePreference_result&);
+  Airavata_updateUserComputeResourcePreference_result& operator=(const Airavata_updateUserComputeResourcePreference_result&);
+  Airavata_updateUserComputeResourcePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateUserComputeResourcePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserComputeResourcePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_updateUserComputeResourcePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserComputeResourcePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserComputeResourcePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserComputeResourcePreference_presult__isset {
+  _Airavata_updateUserComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserComputeResourcePreference_presult__isset;
+
+class Airavata_updateUserComputeResourcePreference_presult {
+ public:
+
+
+  virtual ~Airavata_updateUserComputeResourcePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserComputeResourcePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_updateUserStoragePreference_args {
+ public:
+
+  Airavata_updateUserStoragePreference_args(const Airavata_updateUserStoragePreference_args&);
+  Airavata_updateUserStoragePreference_args& operator=(const Airavata_updateUserStoragePreference_args&);
+  Airavata_updateUserStoragePreference_args() : userId(), storageId() {
+  }
+
+  virtual ~Airavata_updateUserStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string storageId;
+   ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference storagePreference;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_storageId(const std::string& val);
+
+  void __set_storagePreference(const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference& val);
+
+  bool operator == (const Airavata_updateUserStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(storageId == rhs.storageId))
+      return false;
+    if (!(storagePreference == rhs.storagePreference))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserStoragePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_updateUserStoragePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_updateUserStoragePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* storageId;
+  const  ::apache::airavata::model::appcatalog::userresourceprofile::StoragePreference* storagePreference;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserStoragePreference_result__isset {
+  _Airavata_updateUserStoragePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserStoragePreference_result__isset;
+
+class Airavata_updateUserStoragePreference_result {
+ public:
+
+  Airavata_updateUserStoragePreference_result(const Airavata_updateUserStoragePreference_result&);
+  Airavata_updateUserStoragePreference_result& operator=(const Airavata_updateUserStoragePreference_result&);
+  Airavata_updateUserStoragePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_updateUserStoragePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserStoragePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_updateUserStoragePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_updateUserStoragePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_updateUserStoragePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_updateUserStoragePreference_presult__isset {
+  _Airavata_updateUserStoragePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_updateUserStoragePreference_presult__isset;
+
+class Airavata_updateUserStoragePreference_presult {
+ public:
+
+
+  virtual ~Airavata_updateUserStoragePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_updateUserStoragePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteUserComputeResourcePreference_args {
+ public:
+
+  Airavata_deleteUserComputeResourcePreference_args(const Airavata_deleteUserComputeResourcePreference_args&);
+  Airavata_deleteUserComputeResourcePreference_args& operator=(const Airavata_deleteUserComputeResourcePreference_args&);
+  Airavata_deleteUserComputeResourcePreference_args() : userId(), computeResourceId() {
+  }
+
+  virtual ~Airavata_deleteUserComputeResourcePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string computeResourceId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_computeResourceId(const std::string& val);
+
+  bool operator == (const Airavata_deleteUserComputeResourcePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserComputeResourcePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserComputeResourcePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteUserComputeResourcePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteUserComputeResourcePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* computeResourceId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserComputeResourcePreference_result__isset {
+  _Airavata_deleteUserComputeResourcePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserComputeResourcePreference_result__isset;
+
+class Airavata_deleteUserComputeResourcePreference_result {
+ public:
+
+  Airavata_deleteUserComputeResourcePreference_result(const Airavata_deleteUserComputeResourcePreference_result&);
+  Airavata_deleteUserComputeResourcePreference_result& operator=(const Airavata_deleteUserComputeResourcePreference_result&);
+  Airavata_deleteUserComputeResourcePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteUserComputeResourcePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserComputeResourcePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_deleteUserComputeResourcePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserComputeResourcePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserComputeResourcePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserComputeResourcePreference_presult__isset {
+  _Airavata_deleteUserComputeResourcePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserComputeResourcePreference_presult__isset;
+
+class Airavata_deleteUserComputeResourcePreference_presult {
+ public:
+
+
+  virtual ~Airavata_deleteUserComputeResourcePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserComputeResourcePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_deleteUserStoragePreference_args {
+ public:
+
+  Airavata_deleteUserStoragePreference_args(const Airavata_deleteUserStoragePreference_args&);
+  Airavata_deleteUserStoragePreference_args& operator=(const Airavata_deleteUserStoragePreference_args&);
+  Airavata_deleteUserStoragePreference_args() : userId(), storageId() {
+  }
+
+  virtual ~Airavata_deleteUserStoragePreference_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string userId;
+  std::string storageId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_userId(const std::string& val);
+
+  void __set_storageId(const std::string& val);
+
+  bool operator == (const Airavata_deleteUserStoragePreference_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(userId == rhs.userId))
+      return false;
+    if (!(storageId == rhs.storageId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserStoragePreference_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserStoragePreference_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_deleteUserStoragePreference_pargs {
+ public:
+
+
+  virtual ~Airavata_deleteUserStoragePreference_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* userId;
+  const std::string* storageId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserStoragePreference_result__isset {
+  _Airavata_deleteUserStoragePreference_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserStoragePreference_result__isset;
+
+class Airavata_deleteUserStoragePreference_result {
+ public:
+
+  Airavata_deleteUserStoragePreference_result(const Airavata_deleteUserStoragePreference_result&);
+  Airavata_deleteUserStoragePreference_result& operator=(const Airavata_deleteUserStoragePreference_result&);
+  Airavata_deleteUserStoragePreference_result() : success(0) {
+  }
+
+  virtual ~Airavata_deleteUserStoragePreference_result() throw();
+  bool success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserStoragePreference_result__isset __isset;
+
+  void __set_success(const bool val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_deleteUserStoragePreference_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_deleteUserStoragePreference_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_deleteUserStoragePreference_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_deleteUserStoragePreference_presult__isset {
+  _Airavata_deleteUserStoragePreference_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_deleteUserStoragePreference_presult__isset;
+
+class Airavata_deleteUserStoragePreference_presult {
+ public:
+
+
+  virtual ~Airavata_deleteUserStoragePreference_presult() throw();
+  bool* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_deleteUserStoragePreference_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getAllWorkflows_args {
+ public:
+
+  Airavata_getAllWorkflows_args(const Airavata_getAllWorkflows_args&);
+  Airavata_getAllWorkflows_args& operator=(const Airavata_getAllWorkflows_args&);
+  Airavata_getAllWorkflows_args() : gatewayId() {
+  }
+
+  virtual ~Airavata_getAllWorkflows_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string gatewayId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_gatewayId(const std::string& val);
+
+  bool operator == (const Airavata_getAllWorkflows_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllWorkflows_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllWorkflows_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getAllWorkflows_pargs {
+ public:
+
+
+  virtual ~Airavata_getAllWorkflows_pargs() throw();
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
+  const std::string* gatewayId;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllWorkflows_result__isset {
+  _Airavata_getAllWorkflows_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllWorkflows_result__isset;
+
+class Airavata_getAllWorkflows_result {
+ public:
+
+  Airavata_getAllWorkflows_result(const Airavata_getAllWorkflows_result&);
+  Airavata_getAllWorkflows_result& operator=(const Airavata_getAllWorkflows_result&);
+  Airavata_getAllWorkflows_result() {
+  }
+
+  virtual ~Airavata_getAllWorkflows_result() throw();
+  std::vector<std::string>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllWorkflows_result__isset __isset;
+
+  void __set_success(const std::vector<std::string> & val);
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val);
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val);
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val);
+
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val);
+
+  bool operator == (const Airavata_getAllWorkflows_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    if (!(ae == rhs.ae))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getAllWorkflows_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getAllWorkflows_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getAllWorkflows_presult__isset {
+  _Airavata_getAllWorkflows_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
+  bool success :1;
+  bool ire :1;
+  bool ace :1;
+  bool ase :1;
+  bool ae :1;
+} _Airavata_getAllWorkflows_presult__isset;
+
+class Airavata_getAllWorkflows_presult {
+ public:
+
+
+  virtual ~Airavata_getAllWorkflows_presult() throw();
+  std::vector<std::string> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
+
+  _Airavata_getAllWorkflows_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getWorkflow_args {
+ public:
+
+  Airavata_getWorkflow_args(const Airavata_getWorkflow_args&);
+  Airavata_getWorkflow_args& operator=(const Airavata_getWorkflow_args&);
+  Airavata_getWorkflow_args() : workflowTemplateId() {
+  }
+
+  virtual ~Airavata_getWorkflow_args() throw();
+   ::apache::airavata::model::security::AuthzToken authzToken;
+  std::string workflowTemplateId;
+
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val);
+
+  void __set_workflowTemplateId(const std::string& val);
+
+  bool operator == (const Airavata_getWorkflow_args & rhs) const
+  {
+    if (!(authzToken == rhs.authzToken))
+      return false;
+    if (!(workflowTemplateId == rhs.workflowTemplateId))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getWorkflow_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getWorkflow_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getWorkflow_pargs {
  public:
 
 
@@ -24330,6 +26451,45 @@ class AiravataClient : virtual public AiravataIf {
   bool deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId);
   void send_deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId);
   bool recv_deleteGatewayStoragePreference();
+  void registerUserResourceProfile(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile);
+  void send_registerUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& userResourceProfile);
+  void recv_registerUserResourceProfile(std::string& _return);
+  void getUserResourceProfile( ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  void send_getUserResourceProfile(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& userId);
+  void recv_getUserResourceProfile( ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile& _return);
+  bool up

<TRUNCATED>

[11/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
index b67abe9..aa65f1c 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/ExpCatResourceUtils.java
@@ -129,7 +129,7 @@ public class ExpCatResourceUtils {
         resource.save();
     }
 
-    public static boolean isUserExist (String username, String gatewayId) throws RegistryException{
+    public static boolean isUserExist (String username, String gatewayId) throws RegistryException {
         EntityManager em = null;
         try {
             em = getEntityManager();
@@ -141,13 +141,13 @@ public class ExpCatResourceUtils {
             int size = q.getResultList().size();
             em.getTransaction().commit();
             em.close();
-            return size>0;
-        } catch (Exception e){
+            return size > 0;
+        } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);
-        }finally {
-            if (em != null && em.isOpen()){
-                if (em.getTransaction().isActive()){
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
                     em.getTransaction().rollback();
                 }
                 em.close();

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
index 4833874..3880a38 100644
--- a/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
+++ b/modules/registry/registry-core/src/main/resources/META-INF/persistence.xml
@@ -50,6 +50,9 @@
         <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationIntOutput</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.GatewayProfile</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreference</class>
+        <class>org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile</class>
+        <class>org.apache.airavata.registry.core.app.catalog.model.UserComputeResourcePreference</class>
+        <class>org.apache.airavata.registry.core.app.catalog.model.UserStoragePreference</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.BatchQueue</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResourceFileSystem</class>
         <class>org.apache.airavata.registry.core.app.catalog.model.JobSubmissionInterface</class>

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
new file mode 100644
index 0000000..6a8ff09
--- /dev/null
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
@@ -0,0 +1,121 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.app.catalog;
+
+import org.apache.airavata.app.catalog.util.Initialize;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
+import org.apache.airavata.registry.cpi.AppCatalog;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.ComputeResource;
+import org.apache.airavata.registry.cpi.UsrResourceProfile;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+
+public class UserResourceProfileTest {
+    private static Initialize initialize;
+    private static AppCatalog appcatalog;
+    private static final Logger logger = LoggerFactory.getLogger(UserResourceProfileTest.class);
+
+    @Before
+    public void setUp() {
+        try {
+            initialize = new Initialize("appcatalog-derby.sql");
+            initialize.initializeDB();
+            appcatalog = RegistryFactory.getAppCatalog();
+        } catch (AppCatalogException e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
+        initialize.stopDerbyServer();
+    }
+
+    @Test
+    public void userProfileTest() throws Exception {
+        UsrResourceProfile userProfile = appcatalog.getUserResourceProfile();
+        UserResourceProfile uf = new UserResourceProfile();
+        ComputeResource computeRs = appcatalog.getComputeResource();
+        ComputeResourceDescription cm1 = new ComputeResourceDescription();
+        cm1.setHostName("localhost");
+        cm1.setResourceDescription("test compute host");
+        String hostId1 = computeRs.addComputeResource(cm1);
+
+        ComputeResourceDescription cm2 = new ComputeResourceDescription();
+        cm2.setHostName("localhost");
+        cm2.setResourceDescription("test compute host");
+        String hostId2 = computeRs.addComputeResource(cm2);
+
+        UserComputeResourcePreference preference1 = new UserComputeResourcePreference();
+        preference1.setComputeResourceId(hostId1);
+        preference1.setPreferredBatchQueue("queue1");
+        preference1.setScratchLocation("/tmp");
+        preference1.setAllocationProjectNumber("project1");
+
+        UserComputeResourcePreference preference2 = new UserComputeResourcePreference();
+        preference2.setComputeResourceId(hostId2);
+        preference2.setPreferredBatchQueue("queue2");
+        preference2.setScratchLocation("/tmp");
+        preference2.setAllocationProjectNumber("project2");
+
+        List<UserComputeResourcePreference> list = new ArrayList<UserComputeResourcePreference>();
+        list.add(preference1);
+        list.add(preference2);
+        System.out.println("input list size : " + list.size());
+        uf.setUserComputeResourcePreferences(list);
+        uf.setGatewayID("testGateway");
+        uf.setUserId("testUser");
+
+        String gwId = userProfile.addUserResourceProfile(uf);
+        UserResourceProfile retrievedProfile = null;
+        if (userProfile.isUserResourceProfileExists("testUser","testGateway")){
+            retrievedProfile = userProfile.getUserResourceProfile("testUser","testGateway");
+            System.out.println("gateway ID :" + retrievedProfile.getGatewayID());
+            System.out.println("user ID : " + retrievedProfile.getUserId());
+            System.out.println("compute resource size : " + retrievedProfile.getUserComputeResourcePreferencesSize());
+        }
+        List<UserComputeResourcePreference> preferences = userProfile.getAllUserComputeResourcePreferences(retrievedProfile.getUserId(),retrievedProfile.getGatewayID());
+        System.out.println("compute preferences size : " + preferences.size());
+        if (preferences != null && !preferences.isEmpty()){
+            for (UserComputeResourcePreference cm : preferences){
+                System.out.println("******** host id ********* : " + cm.getComputeResourceId());
+                System.out.println(cm.getPreferredBatchQueue());
+            }
+        }
+
+        assertTrue("App interface saved successfully", retrievedProfile != null);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
index ec04c7b..cb3ee8e 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
@@ -83,5 +83,8 @@ public interface UsrResourceProfile {
      */
     String getUserNamefromID(String userId, String gatewayID) throws AppCatalogException;
 
+    List<UserComputeResourcePreference> getAllUserComputeResourcePreferences (String userId, String gatewayId) throws AppCatalogException;
+    List<UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayId) throws AppCatalogException;
+
     List<UserResourceProfile> getAllUserResourceProfiles() throws AppCatalogException;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index c26380d..822da35 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -30,6 +30,9 @@ import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
@@ -63,6 +66,7 @@ import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 import java.util.*;
 
 public class RegistryServerHandler implements RegistryService.Iface {
@@ -1667,7 +1671,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
      * Fetch a Storage Resource Preference of a registered gateway profile.
      *
      * @param gatewayID         The identifier of the gateway profile to request to fetch the particular storage resource preference.
-     * @param storageResourceId Identifier of the Stprage Preference required to be fetched.
+     * @param storageId Identifier of the Stprage Preference required to be fetched.
      * @return StoragePreference
      * Returns the StoragePreference object.
      */
@@ -2100,7 +2104,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
      *
      * @param gatewayID         The identifier of the gateway profile to be added.
      * @param storageResourceId Preferences related to a particular compute resource
-     * @param storagePreference
+     * @param dataStoragePreference
      * @return status
      * Returns a success/failure of the addition. If a profile already exists, this operation will fail.
      * Instead an update should be used.
@@ -2261,9 +2265,9 @@ public class RegistryServerHandler implements RegistryService.Iface {
     /**
      * Delete a given data movement interface
      *
-     * @param productUri
+     *
      * @param dataMovementInterfaceId The identifier of the DataMovement Interface to be changed
-     * @param dataMoveType
+     * @param dmType
      * @return status
      * Returns a success/failure of the deletion.
      */
@@ -2321,8 +2325,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
      * Add a GridFTP data movement details to a compute resource
      * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
      *
-     * @param productUri          The identifier of the compute resource to which dataMovement protocol to be added
-     * @param dataMoveType
+     * productUri          The identifier of the compute resource to which dataMovement protocol to be added
+     * @param dmType
      * @param priorityOrder       Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
      * @param gridFTPDataMovement The GridFTPDataMovement object to be added to the resource.
      * @return status
@@ -2375,8 +2379,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
      * Add a UNICORE data movement details to a compute resource
      * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
      *
-     * @param productUri          The identifier of the compute resource to which data movement protocol to be added
-     * @param dataMoveType
+     *  productUri          The identifier of the compute resource to which data movement protocol to be added
+     * @param dmType
      * @param priorityOrder       Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
      * @param unicoreDataMovement
      * @return status
@@ -2428,8 +2432,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
      * Add a SCP data movement details to a compute resource
      * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
      *
-     * @param productUri      The identifier of the compute resource to which JobSubmission protocol to be added
-     * @param dataMoveType
+     * productUri      The identifier of the compute resource to which JobSubmission protocol to be added
+     * @param dmType
      * @param priorityOrder   Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
      * @param scpDataMovement The SCPDataMovement object to be added to the resource.
      * @return status
@@ -2480,7 +2484,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
      * Add a Local data movement details to a compute resource
      * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces.
      *
-     * @param productUri        The identifier of the compute resource to which JobSubmission protocol to be added
+     * productUri        The identifier of the compute resource to which JobSubmission protocol to be added
      * @param dataMoveType
      * @param priorityOrder     Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero.
      * @param localDataMovement The LOCALDataMovement object to be added to the resource.
@@ -3655,4 +3659,544 @@ public class RegistryServerHandler implements RegistryService.Iface {
         }
         return workflowCatalog;
     }
+
+    /**
+     * Register a User Resource Profile.
+     *
+     * @param userResourceProfile User Resource Profile Object.
+     *                               The GatewayID should be obtained from Airavata user profile data model and passed to register a corresponding
+     *                               resource profile.
+     * @return status
+     * Returns a success/failure of the update.
+     */
+    @Override
+    public String registerUserResourceProfile(UserResourceProfile userResourceProfile) throws RegistryServiceException, TException {
+        try {
+            if (!validateString(userResourceProfile.getUserId())){
+                logger.error("Cannot create user resource profile with empty user id");
+                RegistryServiceException exception =  new RegistryServiceException();
+                exception.setMessage("Cannot create user resource profile with empty gateway id");
+                throw exception;
+            }
+            if (!validateString(userResourceProfile.getGatewayID())){
+                logger.error("Cannot create user resource profile with empty gateway id");
+                RegistryServiceException exception =  new RegistryServiceException();
+                exception.setMessage("Cannot create user resource profile with empty gateway id");
+                throw exception;
+            }
+
+            if (!ExpCatResourceUtils.isUserExist(userResourceProfile.getUserId(), userResourceProfile.getGatewayID())){
+                logger.error("User does not exist.Please provide a valid user ID...");
+                throw new RegistryServiceException("User does not exist.Please provide a valid user ID...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            String resourceProfile = userProfile.addUserResourceProfile(userResourceProfile);
+            logger.debug("Airavata registered user resource profile with gateway id : " + userResourceProfile.getGatewayID() + "and user id : " + userResourceProfile.getUserId());
+            return resourceProfile;
+        } catch (AppCatalogException e) {
+            logger.error("Error while registering user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while registering user resource profile. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error("Error while registering user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while registering user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch the given Gateway Resource Profile.
+     *
+     * @param userId The identifier for the requested user resource.
+     * @return UserResourceProfile object
+     *
+     */
+    @Override
+    public UserResourceProfile getUserResourceProfile(String userId, String gatewayId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayId)){
+                logger.error("user does not exist.Please provide a valid gateway id...");
+                throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile usrResourceProfile = appCatalog.getUserResourceProfile();
+            UserResourceProfile userResourceProfile = usrResourceProfile.getUserResourceProfile(userId,gatewayId);
+            logger.debug("Airavata retrieved User resource profile with user id : " + userId);
+            return userResourceProfile;
+        } catch (AppCatalogException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Update a User Resource Profile.
+     *
+     * @param gatewayID              The identifier for the requested gateway resource to be updated.
+     * @param userResourceProfile Gateway Resource Profile Object.
+     * @return status
+     * Returns a success/failure of the update.
+     */
+
+    @Override
+    public boolean updateUserResourceProfile(String userId, String gatewayID, UserResourceProfile userResourceProfile) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("User does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            userProfile.updateUserResourceProfile(userId, gatewayID, userResourceProfile);
+            logger.debug("Airavata updated gateway profile with gateway id : " + userId);
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while updating gateway resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating gateway resource profile. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Delete the given User Resource Profile.
+     * @param userId identifier for user profile
+     * @param gatewayID The identifier for the requested gateway resource to be deleted.
+     * @return status
+     * Returns a success/failure of the deletion.
+     */
+    @Override
+    public boolean deleteUserResourceProfile(String userId, String gatewayID) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userResourceProfile = appCatalog.getUserResourceProfile();
+            userResourceProfile.removeUserResourceProfile(userId, gatewayID);
+            logger.debug("Airavata deleted User profile with gateway id : " + gatewayID + " and user id : " + userId);
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while removing User resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while removing User resource profile. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Add a User Compute Resource Preference to a registered gateway profile.
+     * @param userId
+     * @param gatewayID                 The identifier for the gateway profile to be added.
+     * @param computeResourceId         Preferences related to a particular compute resource
+     * @param userComputeResourcePreference The UserComputeResourcePreference object to be added to the resource profile.
+     * @return status
+     * Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     * Instead an update should be used.
+     */
+    @Override
+    public boolean addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, UserComputeResourcePreference userComputeResourcePreference) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+                throw new RegistryServiceException("User resource profile with user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
+            }
+            UserResourceProfile profile = userProfile.getUserResourceProfile(userId,gatewayID);
+//            gatewayProfile.removeGatewayResourceProfile(gatewayID);
+            profile.addToUserComputeResourcePreferences(userComputeResourcePreference);
+            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            logger.debug("Airavata added User compute resource preference with gateway id : " + gatewayID + " and for compute resource id : " + computeResourceId );
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while registering User resource profile preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while registering user resource profile preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Add a Storage Resource Preference to a registered gateway profile.
+     *
+     * @param gatewayID         The identifier of the gateway profile to be added.
+     * @param storageResourceId Preferences related to a particular compute resource
+     * @param dataStoragePreference
+     * @return status
+     * Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     * Instead an update should be used.
+     */
+    @Override
+    public boolean addUserStoragePreference(String userId, String gatewayID, String storageResourceId, UserStoragePreference dataStoragePreference) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+                throw new RegistryServiceException("User resource profile with user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
+            }
+            UserResourceProfile profile = userProfile.getUserResourceProfile(userId,gatewayID);
+//            gatewayProfile.removeGatewayResourceProfile(gatewayID);
+            dataStoragePreference.setStorageResourceId(storageResourceId);
+            profile.addToUserStoragePreferences(dataStoragePreference);
+            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            logger.debug("Airavata added storage resource preference with gateway id : " + gatewayID + " and for storage resource id : " + storageResourceId );
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while registering user resource profile preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while registering user resource profile preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch a Compute Resource Preference of a registered gateway profile.
+     * @param userId
+     * @param gatewayID         The identifier for the gateway profile to be requested
+     * @param userComputeResourceId Preferences related to a particular compute resource
+     * @return computeResourcePreference
+     * Returns the ComputeResourcePreference object.
+     */
+    @Override
+    public UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+                throw new RegistryServiceException("User resource profile with user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
+            }
+            ComputeResource computeResource = appCatalog.getComputeResource();
+            if (!computeResource.isComputeResourceExists(userComputeResourceId)){
+                logger.error(userComputeResourceId, "Given compute resource does not exist in the system. Please provide a valid compute resource id...");
+                RegistryServiceException exception = new RegistryServiceException();
+                exception.setMessage("Given compute resource does not exist in the system. Please provide a valid compute resource id...");
+                throw exception;
+            }
+            UserComputeResourcePreference userComputeResourcePreference = userProfile.getUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
+            logger.debug("Airavata retrieved user compute resource preference with gateway id : " + gatewayID + " and for compute resoruce id : " + userComputeResourceId );
+            return userComputeResourcePreference;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading user compute resource preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while reading user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch a Storage Resource Preference of a registered gateway profile.
+     * @param userId identifier for user data model
+     * @param gatewayID         The identifier of the gateway profile to request to fetch the particular storage resource preference.
+     * @param storageId Identifier of the Storage Preference required to be fetched.
+     * @return StoragePreference
+     * Returns the StoragePreference object.
+     */
+    @Override
+    public UserStoragePreference getUserStoragePreference(String userId, String gatewayID, String storageId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            if (!userProfile.isUserResourceProfileExists(userId, gatewayID)){
+                throw new RegistryServiceException("User resource profile with user id'"+userId+" &  gateway Id"+gatewayID+"' does not exist!!!");
+            }
+
+            UserStoragePreference storagePreference = userProfile.getUserStoragePreference(userId, gatewayID, storageId);
+            logger.debug("Airavata retrieved user storage resource preference with gateway id : " + gatewayID + " and for storage resource id : " + storageId);
+            return storagePreference;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while reading gateway data storage preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch all User Resource Profiles registered
+     *
+     * @return UserResourceProfile
+     * Returns all the UserResourceProfile list object.
+     */
+    @Override
+    public List<UserResourceProfile> getAllUserResourceProfiles() throws RegistryServiceException, TException {
+        try {
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            return userProfile.getAllUserResourceProfiles();
+        } catch (AppCatalogException e) {
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while reading retrieving all gateway profiles. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Update a Compute Resource Preference to a registered user resource profile.
+     * @param userId identifier for user data model
+     * @param gatewayID                 The identifier for the gateway profile to be updated.
+     * @param computeResourceId         Preferences related to a particular compute resource
+     * @param userComputeResourcePreference The ComputeResourcePreference object to be updated to the resource profile.
+     * @return status
+     * Returns a success/failure of the updation.
+     */
+    @Override
+    public boolean updateUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, UserComputeResourcePreference userComputeResourcePreference) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            UserResourceProfile profile = userProfile.getUserResourceProfile(userId,gatewayID);
+            List<UserComputeResourcePreference> userComputeResourcePreferences = profile.getUserComputeResourcePreferences();
+            UserComputeResourcePreference preferenceToRemove = null;
+            for (UserComputeResourcePreference preference : userComputeResourcePreferences) {
+                if (preference.getComputeResourceId().equals(computeResourceId)){
+                    preferenceToRemove=preference;
+                    break;
+                }
+            }
+            if (preferenceToRemove!=null) {
+                profile.getUserComputeResourcePreferences().remove(
+                        preferenceToRemove);
+            }
+            profile.getUserComputeResourcePreferences().add(userComputeResourcePreference);
+            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            logger.debug("Airavata updated compute resource preference with gateway id : " + gatewayID + " and for compute resource id : " + computeResourceId );
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(userId, "Error while reading user compute resource preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Update a Storage Resource Preference of a registered user resource profile.
+     * @param userId identifier for user data model
+     * @param gatewayID         The identifier of the gateway profile to be updated.
+     * @param storageId         The Storage resource identifier of the one that you want to update
+     * @param userStoragePreference The storagePreference object to be updated to the resource profile.
+     * @return status
+     * Returns a success/failure of the updation.
+     */
+    @Override
+    public boolean updateUserStoragePreference(String userId, String gatewayID, String storageId, UserStoragePreference userStoragePreference) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            UserResourceProfile profile = userProfile.getUserResourceProfile(userId,gatewayID);
+            List<UserStoragePreference> dataStoragePreferences = profile.getUserStoragePreferences();
+            UserStoragePreference preferenceToRemove = null;
+            for (UserStoragePreference preference : dataStoragePreferences) {
+                if (preference.getStorageResourceId().equals(storageId)){
+                    preferenceToRemove=preference;
+                    break;
+                }
+            }
+            if (preferenceToRemove!=null) {
+                profile.getUserStoragePreferences().remove(
+                        preferenceToRemove);
+            }
+            profile.getUserStoragePreferences().add(userStoragePreference);
+            userProfile.updateUserResourceProfile(userId, gatewayID, profile);
+            logger.debug("Airavata updated user storage resource preference with gateway id : " + gatewayID + " and for storage resource id : " + storageId );
+            return true;
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading user data storage preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating user data storage preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Delete the Compute Resource Preference of a registered gateway profile.
+     * @param userId The identifier for user data model
+     * @param gatewayID         The identifier for the gateway profile to be deleted.
+     * @param computeResourceId Preferences related to a particular compute resource
+     * @return status
+     * Returns a success/failure of the deletion.
+     */
+    @Override
+    public boolean deleteUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            return userProfile.removeUserComputeResourcePreferenceFromGateway(userId, gatewayID, computeResourceId);
+        } catch (AppCatalogException e) {
+            logger.error(userId, "Error while reading user compute resource preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Delete the Storage Resource Preference of a registered gateway profile.
+     * @param userId The identifier for user data model
+     * @param gatewayID The identifier of the gateway profile to be deleted.
+     * @param storageId ID of the storage preference you want to delete.
+     * @return status
+     * Returns a success/failure of the deletion.
+     */
+    @Override
+    public boolean deleteUserStoragePreference(String userId, String gatewayID, String storageId) throws RegistryServiceException, TException {
+        try {
+            if (!ExpCatResourceUtils.isUserExist(userId, gatewayID)){
+                logger.error("user does not exist.Please provide a valid user id...");
+                throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            return userProfile.removeUserDataStoragePreferenceFromGateway(userId, gatewayID, storageId);
+        } catch (AppCatalogException e) {
+            logger.error(gatewayID, "Error while reading user data storage preference...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while updating user data storage preference. More info : " + e.getMessage());
+            throw exception;
+        } catch (RegistryException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch all User Compute Resource Preferences of a registered User Resource Profile.
+     *
+     * @param userId
+     * @param gatewayID The identifier for the gateway profile to be requested
+     * @return computeResourcePreference
+     * Returns the ComputeResourcePreference object.
+     */
+    @Override
+    public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId, String gatewayID) throws RegistryServiceException, TException {
+        try {
+            if (!isUserExists(gatewayID,userId)){
+                logger.error("User Resource Profile does not exist.Please provide a valid gateway id...");
+                throw new RegistryServiceException("User Resource Profile does not exist.Please provide a valid gateway id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            return userProfile.getUserResourceProfile(userId, gatewayID).getUserComputeResourcePreferences();
+        } catch (AppCatalogException e) {
+            logger.error(userId, "Error while reading User Resource Profile compute resource preferences...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while reading User Resource Profile compute resource preferences. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch all Storage Resource Preferences of a registered User Resource Profile.
+     *
+     * @param userId
+     * @param gatewayID The identifier for the gateway profile to be requested
+     * @return StoragePreference
+     * Returns the StoragePreference object.
+     */
+    @Override
+    public List<UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayID) throws RegistryServiceException, TException {
+        try {
+            if (!isUserExists(gatewayID,userId)){
+                logger.error("User does not exist.Please provide a valid gateway id...");
+                throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
+            }
+            appCatalog = RegistryFactory.getAppCatalog();
+            UsrResourceProfile userProfile = appCatalog.getUserResourceProfile();
+            return userProfile.getUserResourceProfile(userId, gatewayID).getUserStoragePreferences();
+        } catch (AppCatalogException e) {
+            logger.error(userId, "Error while reading user resource Profile data storage preferences...", e);
+            RegistryServiceException exception = new RegistryServiceException();
+            exception.setMessage("Error while reading user resource Profile data storage preferences. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+
 }
\ No newline at end of file


[28/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 77a2c9d,79978c0..f5700cd
--- 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
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Airavata {
  
    public interface Iface {
@@@ -31869,20440 -29751,154 +31969,20513 @@@
        }
      }
  
 -    // isset id assignments
 -    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 -    static {
 -      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 -      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)));
 -      metaDataMap = Collections.unmodifiableMap(tmpMap);
 -      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class, metaDataMap);
 -    }
 +    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 getAPIVersion_args() {
 -    }
 +      public getParentDataProduct_args getEmptyArgsInstance() {
 +        return new getParentDataProduct_args();
 +      }
  
 -    public getAPIVersion_args(
 -      org.apache.airavata.model.security.AuthzToken authzToken)
 -    {
 -      this();
 -      this.authzToken = authzToken;
 -    }
 +      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new 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;
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
  
 -    /**
 -     * Performs a deep copy on <i>other</i>.
 -     */
 -    public getAPIVersion_args(getAPIVersion_args other) {
 -      if (other.isSetAuthzToken()) {
 -        this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
 +      protected boolean isOneway() {
 +        return false;
        }
 -    }
  
 -    public getAPIVersion_args deepCopy() {
 -      return new getAPIVersion_args(this);
 +      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
 +        iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
 +      }
      }
  
 -    @Override
 -    public void clear() {
 -      this.authzToken = null;
 -    }
 +    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, List<org.apache.airavata.model.data.replica.DataProductModel>> {
 +      public getChildDataProducts() {
 +        super("getChildDataProducts");
 +      }
  
 -    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
 -      return this.authzToken;
 -    }
 +      public getChildDataProducts_args getEmptyArgsInstance() {
 +        return new getChildDataProducts_args();
 +      }
  
 -    public getAPIVersion_args setAuthzToken(org.apache.airavata.model.security.AuthzToken authzToken) {
 -      this.authzToken = authzToken;
 -      return this;
 -    }
 +      public AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
 +          public void onComplete(List<org.apache.airavata.model.data.replica.DataProductModel> o) {
 +            getChildDataProducts_result result = new getChildDataProducts_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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
  
 -    public void unsetAuthzToken() {
 -      this.authzToken = null;
 -    }
 +      protected boolean isOneway() {
 +        return false;
 +      }
  
 -    /** Returns true if field authzToken is set (has been assigned a value) and false otherwise */
 -    public boolean isSetAuthzToken() {
 -      return this.authzToken != null;
 +      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws TException {
 +        iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
 +      }
      }
  
 -    public void setAuthzTokenIsSet(boolean value) {
 -      if (!value) {
 -        this.authzToken = null;
 +    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, Boolean> {
 +      public shareResourceWithUsers() {
 +        super("shareResourceWithUsers");
        }
 -    }
  
 -    public void setFieldValue(_Fields field, Object value) {
 -      switch (field) {
 -      case AUTHZ_TOKEN:
 -        if (value == null) {
 -          unsetAuthzToken();
 -        } else {
 -          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
 -        }
 -        break;
 +      public shareResourceWithUsers_args getEmptyArgsInstance() {
 +        return new shareResourceWithUsers_args();
 +      }
  
 +      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new AsyncMethodCallback<Boolean>() { 
 +          public void onComplete(Boolean o) {
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            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;
 +            }
 +            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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
        }
 -    }
  
 -    public Object getFieldValue(_Fields field) {
 -      switch (field) {
 -      case AUTHZ_TOKEN:
 -        return getAuthzToken();
 +      protected boolean isOneway() {
 +        return false;
 +      }
  
 +      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);
        }
 -      throw new 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();
 +    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, Boolean> {
 +      public revokeSharingOfResourceFromUsers() {
 +        super("revokeSharingOfResourceFromUsers");
        }
  
 -      switch (field) {
 -      case AUTHZ_TOKEN:
 -        return isSetAuthzToken();
 +      public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
 +        return new revokeSharingOfResourceFromUsers_args();
        }
 -      throw new IllegalStateException();
 -    }
  
 -    @Override
 -    public boolean equals(Object that) {
 -      if (that == null)
 +      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new AsyncMethodCallback<Boolean>() { 
 +          public void onComplete(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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            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;
 +            }
 +            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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
          return false;
 -      if (that instanceof getAPIVersion_args)
 -        return this.equals((getAPIVersion_args)that);
 -      return false;
 +      }
 +
 +      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 boolean equals(getAPIVersion_args that) {
 -      if (that == null)
 -        return false;
 +    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, List<String>> {
 +      public getAllAccessibleUsers() {
 +        super("getAllAccessibleUsers");
 +      }
  
 -      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;
 +      public getAllAccessibleUsers_args getEmptyArgsInstance() {
 +        return new getAllAccessibleUsers_args();
        }
  
 -      return true;
 +      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new AsyncMethodCallback<List<String>>() { 
 +          public void onComplete(List<String> o) {
 +            getAllAccessibleUsers_result result = new getAllAccessibleUsers_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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            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;
 +            }
 +            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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
 +      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);
 +      }
      }
  
 -    @Override
 -    public int hashCode() {
 -      List<Object> list = new ArrayList<Object>();
 +    public static class createGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroup_args, Boolean> {
 +      public createGroup() {
 +        super("createGroup");
 +      }
  
 -      boolean present_authzToken = true && (isSetAuthzToken());
 -      list.add(present_authzToken);
 -      if (present_authzToken)
 -        list.add(authzToken);
 +      public createGroup_args getEmptyArgsInstance() {
 +        return new createGroup_args();
 +      }
  
 -      return list.hashCode();
 -    }
 +      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        return new AsyncMethodCallback<Boolean>() { 
 +          public void onComplete(Boolean o) {
 +            createGroup_result result = new createGroup_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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            createGroup_result result = new createGroup_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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
  
 -    @Override
 -    public int compareTo(getAPIVersion_args other) {
 -      if (!getClass().equals(other.getClass())) {
 -        return getClass().getName().compareTo(other.getClass().getName());
 +      protected boolean isOneway() {
 +        return false;
        }
  
 -      int lastComparison = 0;
 +      public void start(I iface, createGroup_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
 +        iface.createGroup(args.authzToken, args.groupModel,resultHandler);
 +      }
 +    }
  
 -      lastComparison = Boolean.valueOf(isSetAuthzToken()).compareTo(other.isSetAuthzToken());
 -      if (lastComparison != 0) {
 -        return lastComparison;
 +    public static class updateGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroup_args, Boolean> {
 +      public updateGroup() {
 +        super("updateGroup");
        }
 -      if (isSetAuthzToken()) {
 -        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.authzToken, other.authzToken);
 +
 +      public updateGroup_args getEmptyArgsInstance() {
 +        return new updateGroup_args();
 +      }
 +
 +      public AsyncMethodCallback<Boolean> getResultHandler(final 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();
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            updateGroup_result result = new updateGroup_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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
 +      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 static class deleteGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGroup_args, Boolean> {
 +      public deleteGroup() {
 +        super("deleteGroup");
 +      }
 +
 +      public deleteGroup_args getEmptyArgsInstance() {
 +        return new deleteGroup_args();
 +      }
 +
 +      public AsyncMethodCallback<Boolean> getResultHandler(final 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();
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            deleteGroup_result result = new deleteGroup_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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
 +      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, args.gatewayId,resultHandler);
 +      }
 +    }
 +
 +    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 getGroup_args getEmptyArgsInstance() {
 +        return new getGroup_args();
 +      }
 +
 +      public AsyncMethodCallback<org.apache.airavata.model.group.GroupModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
 +        final org.apache.thrift.AsyncProcessFunction fcall = this;
 +        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();
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            getGroup_result result = new getGroup_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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            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 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 getAllGroupsUserBelongs_args getEmptyArgsInstance() {
 +        return new getAllGroupsUserBelongs_args();
 +      }
 +
 +      public AsyncMethodCallback<List<org.apache.airavata.model.group.GroupModel>> getResultHandler(final 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();
 +            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);
 +            }
 +            fb.close();
 +          }
 +          public void onError(Exception e) {
 +            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
 +            org.apache.thrift.TBase msg;
 +            getAllGroupsUserBelongs_result result = new getAllGroupsUserBelongs_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 
 +            {
 +              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());
 +            }
 +            try {
 +              fcall.sendResponse(fb,msg,msgType,seqid);
 +              return;
 +            } catch (Exception ex) {
 +              LOGGER.error("Exception writing to internal frame buffer", ex);
 +            }
 +            fb.close();
 +          }
 +        };
 +      }
 +
 +      protected boolean isOneway() {
 +        return false;
 +      }
 +
 +      public void start(I iface, getAllGroupsUserBelongs_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.group.GroupModel>> resultHandler) throws TException {
 +        iface.getAllGroupsUserBelongs(args.authzToken, args.userName, args.gatewayId,resultHandler);
 +      }
 +    }
 +
-   }
- 
-   public static class getAPIVersion_args implements org.apache.thrift.TBase<getAPIVersion_args, getAPIVersion_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_args>   {
-     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_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 Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
-     static {
-       schemes.put(StandardScheme.class, new getAPIVersion_argsStandardSchemeFactory());
-       schemes.put(TupleScheme.class, new getAPIVersion_argsTupleSchemeFactory());
-     }
- 
-     public org.apache.airavata.model.security.AuthzToken authzToken; // 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");
- 
-       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
- 
-       static {
-         for (_Fields field : 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;
-           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!");
-         return fields;
-       }
- 
-       /**
-        * Find the _Fields constant that matches name, or null if its not found.
-        */
-       public static _Fields findByName(String name) {
-         return byName.get(name);
-       }
- 
-       private final short _thriftId;
-       private final String _fieldName;
- 
-       _Fields(short thriftId, String fieldName) {
-         _thriftId = thriftId;
-         _fieldName = fieldName;
-       }
- 
-       public short getThriftFieldId() {
-         return _thriftId;
-       }
- 
-       public String getFieldName() {
-         return _fieldName;
-       }
-     }
- 
-     // isset id assignments
-     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-     static {
-       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-       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)));
-       metaDataMap = Collections.unmodifiableMap(tmpMap);
-       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class, metaDataMap);
-     }
- 
-     public getAPIVersion_args() {
-     }
- 
-     public getAPIVersion_args(
-       org.apache.airavata.model.security.AuthzToken authzToken)
-     {
-       this();
-       this.authzToken = authzToken;
-     }
- 
-     /**
-      * Performs a deep copy on <i>other</i>.
-      */
-     public getAPIVersion_args(getAPIVersion_args other) {
-       if (other.isSetAuthzToken()) {
-         this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
-       }
-     }
- 
-     public getAPIVersion_args deepCopy() {
-       return new getAPIVersion_args(this);
-     }
- 
-     @Override
-     public void clear() {
-       this.authzToken = null;
-     }
- 
-     public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
-       return this.authzToken;
-     }
- 
-     public getAPIVersion_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 void setFieldValue(_Fields field, Object value) {
-       switch (field) {
-       case AUTHZ_TOKEN:
-         if (value == null) {
-           unsetAuthzToken();
-         } else {
-           setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
-         }
-         break;
- 
-       }
-     }
- 
-     public Object getFieldValue(_Fields field) {
-       switch (field) {
-       case AUTHZ_TOKEN:
-         return getAuthzToken();
- 
-       }
-       throw new 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();
-       }
- 
-       switch (field) {
-       case AUTHZ_TOKEN:
-         return isSetAuthzToken();
-       }
-       throw new IllegalStateException();
-     }
- 
-     @Override
-     public boolean equals(Object that) {
-       if (that == null)
-         return false;
-       if (that instanceof getAPIVersion_args)
-         return this.equals((getAPIVersion_args)that);
-       return false;
-     }
- 
-     public boolean equals(getAPIVersion_args that) {
-       if (that == null)
-         return false;
- 
-       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;
-       }
- 
-       return true;
-     }
- 
-     @Override
-     public int hashCode() {
-       List<Object> list = new ArrayList<Object>();
- 
-       boolean present_authzToken = true && (isSetAuthzToken());
-       list.add(present_authzToken);
-       if (present_authzToken)
-         list.add(authzToken);
- 
-       return list.hashCode();
-     }
- 
-     @Override
-     public int compareTo(getAPIVersion_args other) {
-       if (!getClass().equals(other.getClass())) {
-         return getClass().getName().compareTo(other.getClass().getName());
++    public static class isDataSharingEnabled<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, isDataSharingEnabled_args, Boolean> {
++      public isDataSharingEnabled() {
++        super("isDataSharingEnabled");
 +      }
 +
-       int lastComparison = 0;
- 
-       lastComparison = 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;
-         }
++      public isDataSharingEnabled_args getEmptyArgsInstance() {
++        return new isDataSharingEnabled_args();
 +      }
-       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);
-     }
- 
-     public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-       schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
-     }
- 
-     @Override
-     public String toString() {
-       StringBuilder sb = new StringBuilder("getAPIVersion_args(");
-       boolean first = true;
 +
-       sb.append("authzToken:");
-       if (this.authzToken == null) {
-         sb.append("null");
-       } else {
-         sb.append(this.authzToken);
-       }
-       first = false;
-       sb.append(")");
-       return sb.toString();
-     }
- 
-     public void validate() throws org.apache.thrift.TException {
-       // check for required fields
-       if (authzToken == null) {
-         throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
-       }
-       // check for sub-struct validity
-       if (authzToken != null) {
-         authzToken.validate();
-       }
-     }
- 
-     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-       try {
-         write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-       } catch (org.apache.thrift.TException te) {
-         throw new java.io.IOException(te);
-       }
-     }
- 
-     private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, 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 getAPIVersion_argsStandardSchemeFactory implements SchemeFactory {
-       public getAPIVersion_argsStandardScheme getScheme() {
-         return new getAPIVersion_argsStandardScheme();
-       }
-     }
- 
-     private static class getAPIVersion_argsStandardScheme extends StandardScheme<getAPIVersion_args> {
- 
-       public void read(org.apache.thrift.protocol.TProtocol iprot, getAPIVersion_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;
++      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
++        final org.apache.thrift.AsyncProcessFunction fcall = this;
++        return new AsyncMethodCallback<Boolean>() { 
++          public void onComplete(Boolean o) {
++            isDataSharingEnabled_result result = new isDataSharingEnabled_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);
++            }
++            fb.close();
 +          }
-           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;
-             default:
-               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++          public void onError(Exception e) {
++            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
++            org.apache.thrift.TBase msg;
++            isDataSharingEnabled_result result = new isDataSharingEnabled_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 
++            {
++              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());
++            }
++            try {
++              fcall.sendResponse(fb,msg,msgType,seqid);
++              return;
++            } catch (Exception ex) {
++              LOGGER.error("Exception writing to internal frame buffer", ex);
++            }
++            fb.close();
 +          }
-           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, getAPIVersion_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();
-         }
-         oprot.writeFieldStop();
-         oprot.writeStructEnd();
-       }
- 
-     }
- 
-     private static class getAPIVersion_argsTupleSchemeFactory implements SchemeFactory {
-       public getAPIVersion_argsTupleScheme getScheme() {
-         return new getAPIVersion_argsTupleScheme();
++        };
 +      }
-     }
- 
-     private static class getAPIVersion_argsTupleScheme extends TupleScheme<getAPIVersion_args> {
 +
-       @Override
-       public void write(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
-         TTupleProtocol oprot = (TTupleProtocol) prot;
-         struct.authzToken.write(oprot);
++      protected boolean isOneway() {
++        return false;
 +      }
 +
-       @Override
-       public void read(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
-         TTupleProtocol iprot = (TTupleProtocol) prot;
-         struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
-         struct.authzToken.read(iprot);
-         struct.setAuthzTokenIsSet(true);
++      public void start(I iface, isDataSharingEnabled_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
++        iface.isDataSharingEnabled(resultHandler);
 +      }
 +    }
 +
 +  }
 +
-   public static class getAPIVersion_result implements org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
-     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_result");
++  public static class getAPIVersion_args implements org.apache.thrift.TBase<getAPIVersion_args, getAPIVersion_args._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_args>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_args");
 +
-     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
-     private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
-     private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
-     private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
-     private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
++    private static final org.apache.thrift.protocol.TField AUTHZ_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("authzToken", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 +
 +    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 +    static {
-       schemes.put(StandardScheme.class, new getAPIVersion_resultStandardSchemeFactory());
-       schemes.put(TupleScheme.class, new getAPIVersion_resultTupleSchemeFactory());
++      schemes.put(StandardScheme.class, new getAPIVersion_argsStandardSchemeFactory());
++      schemes.put(TupleScheme.class, new getAPIVersion_argsTupleSchemeFactory());
 +    }
 +
-     public String success; // required
-     public org.apache.airavata.model.error.InvalidRequestException ire; // required
-     public org.apache.airavata.model.error.AiravataClientException ace; // required
-     public org.apache.airavata.model.error.AiravataSystemException ase; // required
-     public org.apache.airavata.model.error.AuthorizationException ae; // required
++    public org.apache.airavata.model.security.AuthzToken authzToken; // required
 +
 +    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
 +    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-       SUCCESS((short)0, "success"),
-       IRE((short)1, "ire"),
-       ACE((short)2, "ace"),
-       ASE((short)3, "ase"),
-       AE((short)4, "ae");
++      AUTHZ_TOKEN((short)1, "authzToken");
 +
 +      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 +
 +      static {
 +        for (_Fields field : EnumSet.allOf(_Fields.class)) {
 +          byName.put(field.getFieldName(), field);
 +        }
 +      }
 +
 +      /**
 +       * Find the _Fields constant that matches fieldId, or null if its not found.
 +       */
 +      public static _Fields findByThriftId(int fieldId) {
 +        switch(fieldId) {
-           case 0: // SUCCESS
-             return SUCCESS;
-           case 1: // IRE
-             return IRE;
-           case 2: // ACE
-             return ACE;
-           case 3: // ASE
-             return ASE;
-           case 4: // AE
-             return AE;
++          case 1: // AUTHZ_TOKEN
++            return AUTHZ_TOKEN;
++          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!");
++        return fields;
++      }
++
++      /**
++       * Find the _Fields constant that matches name, or null if its not found.
++       */
++      public static _Fields findByName(String name) {
++        return byName.get(name);
++      }
++
++      private final short _thriftId;
++      private final String _fieldName;
++
++      _Fields(short thriftId, String fieldName) {
++        _thriftId = thriftId;
++        _fieldName = fieldName;
++      }
++
++      public short getThriftFieldId() {
++        return _thriftId;
++      }
++
++      public String getFieldName() {
++        return _fieldName;
++      }
++    }
++
++    // isset id assignments
++    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
++    static {
++      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
++      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)));
++      metaDataMap = Collections.unmodifiableMap(tmpMap);
++      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAPIVersion_args.class, metaDataMap);
++    }
++
++    public getAPIVersion_args() {
++    }
++
++    public getAPIVersion_args(
++      org.apache.airavata.model.security.AuthzToken authzToken)
++    {
++      this();
++      this.authzToken = authzToken;
++    }
++
++    /**
++     * Performs a deep copy on <i>other</i>.
++     */
++    public getAPIVersion_args(getAPIVersion_args other) {
++      if (other.isSetAuthzToken()) {
++        this.authzToken = new org.apache.airavata.model.security.AuthzToken(other.authzToken);
++      }
++    }
++
++    public getAPIVersion_args deepCopy() {
++      return new getAPIVersion_args(this);
++    }
++
++    @Override
++    public void clear() {
++      this.authzToken = null;
++    }
++
++    public org.apache.airavata.model.security.AuthzToken getAuthzToken() {
++      return this.authzToken;
++    }
++
++    public getAPIVersion_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 void setFieldValue(_Fields field, Object value) {
++      switch (field) {
++      case AUTHZ_TOKEN:
++        if (value == null) {
++          unsetAuthzToken();
++        } else {
++          setAuthzToken((org.apache.airavata.model.security.AuthzToken)value);
++        }
++        break;
++
++      }
++    }
++
++    public Object getFieldValue(_Fields field) {
++      switch (field) {
++      case AUTHZ_TOKEN:
++        return getAuthzToken();
++
++      }
++      throw new 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();
++      }
++
++      switch (field) {
++      case AUTHZ_TOKEN:
++        return isSetAuthzToken();
++      }
++      throw new IllegalStateException();
++    }
++
++    @Override
++    public boolean equals(Object that) {
++      if (that == null)
++        return false;
++      if (that instanceof getAPIVersion_args)
++        return this.equals((getAPIVersion_args)that);
++      return false;
++    }
++
++    public boolean equals(getAPIVersion_args that) {
++      if (that == null)
++        return false;
++
++      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;
++      }
++
++      return true;
++    }
++
++    @Override
++    public int hashCode() {
++      List<Object> list = new ArrayList<Object>();
++
++      boolean present_authzToken = true && (isSetAuthzToken());
++      list.add(present_authzToken);
++      if (present_authzToken)
++        list.add(authzToken);
++
++      return list.hashCode();
++    }
++
++    @Override
++    public int compareTo(getAPIVersion_args other) {
++      if (!getClass().equals(other.getClass())) {
++        return getClass().getName().compareTo(other.getClass().getName());
++      }
++
++      int lastComparison = 0;
++
++      lastComparison = 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;
++        }
++      }
++      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);
++    }
++
++    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
++      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
++    }
++
++    @Override
++    public String toString() {
++      StringBuilder sb = new StringBuilder("getAPIVersion_args(");
++      boolean first = true;
++
++      sb.append("authzToken:");
++      if (this.authzToken == null) {
++        sb.append("null");
++      } else {
++        sb.append(this.authzToken);
++      }
++      first = false;
++      sb.append(")");
++      return sb.toString();
++    }
++
++    public void validate() throws org.apache.thrift.TException {
++      // check for required fields
++      if (authzToken == null) {
++        throw new org.apache.thrift.protocol.TProtocolException("Required field 'authzToken' was not present! Struct: " + toString());
++      }
++      // check for sub-struct validity
++      if (authzToken != null) {
++        authzToken.validate();
++      }
++    }
++
++    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
++      try {
++        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
++      } catch (org.apache.thrift.TException te) {
++        throw new java.io.IOException(te);
++      }
++    }
++
++    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, 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 getAPIVersion_argsStandardSchemeFactory implements SchemeFactory {
++      public getAPIVersion_argsStandardScheme getScheme() {
++        return new getAPIVersion_argsStandardScheme();
++      }
++    }
++
++    private static class getAPIVersion_argsStandardScheme extends StandardScheme<getAPIVersion_args> {
++
++      public void read(org.apache.thrift.protocol.TProtocol iprot, getAPIVersion_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;
++            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, getAPIVersion_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();
++        }
++        oprot.writeFieldStop();
++        oprot.writeStructEnd();
++      }
++
++    }
++
++    private static class getAPIVersion_argsTupleSchemeFactory implements SchemeFactory {
++      public getAPIVersion_argsTupleScheme getScheme() {
++        return new getAPIVersion_argsTupleScheme();
++      }
++    }
++
++    private static class getAPIVersion_argsTupleScheme extends TupleScheme<getAPIVersion_args> {
++
++      @Override
++      public void write(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
++        TTupleProtocol oprot = (TTupleProtocol) prot;
++        struct.authzToken.write(oprot);
++      }
++
++      @Override
++      public void read(org.apache.thrift.protocol.TProtocol prot, getAPIVersion_args struct) throws org.apache.thrift.TException {
++        TTupleProtocol iprot = (TTupleProtocol) prot;
++        struct.authzToken = new org.apache.airavata.model.security.AuthzToken();
++        struct.authzToken.read(iprot);
++        struct.setAuthzTokenIsSet(true);
++      }
++    }
++
++  }
++
++  public static class getAPIVersion_result implements org.apache.thrift.TBase<getAPIVersion_result, getAPIVersion_result._Fields>, java.io.Serializable, Cloneable, Comparable<getAPIVersion_result>   {
++    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAPIVersion_result");
++
++    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
++    private static final org.apache.thrift.protocol.TField IRE_FIELD_DESC = new org.apache.thrift.protocol.TField("ire", org.apache.thrift.protocol.TType.STRUCT, (short)1);
++    private static final org.apache.thrift.protocol.TField ACE_FIELD_DESC = new org.apache.thrift.protocol.TField("ace", org.apache.thrift.protocol.TType.STRUCT, (short)2);
++    private static final org.apache.thrift.protocol.TField ASE_FIELD_DESC = new org.apache.thrift.protocol.TField("ase", org.apache.thrift.protocol.TType.STRUCT, (short)3);
++    private static final org.apache.thrift.protocol.TField AE_FIELD_DESC = new org.apache.thrift.protocol.TField("ae", org.apache.thrift.protocol.TType.STRUCT, (short)4);
++
++    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
++    static {
++      schemes.put(StandardScheme.class, new getAPIVersion_resultStandardSchemeFactory());
++      schemes.put(TupleScheme.class, new getAPIVersion_resultTupleSchemeFactory());
++    }
++
++    public String success; // required
++    public org.apache.airavata.model.error.InvalidRequestException ire; // required
++    public org.apache.airavata.model.error.AiravataClientException ace; // required
++    public org.apache.airavata.model.error.AiravataSystemException ase; // required
++    public org.apache.airavata.model.error.AuthorizationException ae; // required
++
++    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
++    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
++      SUCCESS((short)0, "success"),
++      IRE((short)1, "ire"),
++      ACE((short)2, "ace"),
++      ASE((short)3, "ase"),
++      AE((short)4, "ae");
++
++      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
++
++      static {
++        for (_Fields field : EnumSet.allOf(_Fields.class)) {
++          byName.put(field.getFieldName(), field);
++        }
++      }
++
++      /**
++       * Find the _Fields constant that matches fieldId, or null if its not found.
++       */
++      public static _Fields findByThriftId(int fieldId) {
++        switch(fieldId) {
++          case 0: // SUCCESS
++            return SUCCESS;
++          case 1: // IRE
++            return IRE;
++          case 2: // ACE
++            return ACE;
++          case 3: // ASE
++            return ASE;
++          case 4: // AE
++            return AE;
 +          default:
 +            return null;
 +        }
 +      }
 +
 +      /**
 +       * Find the _Fields constant that matches fieldId, throwing an exception
 +       * if it is not found.
 +       */
 +      public static _Fields findByThriftIdOrThrow(int fieldId) {
 +        _Fields fields = findByThriftId(fieldId);
 +        if (fields == null) throw new 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) {
 +        return byName.get(name);
 +      }
 +
 +      private final short _thriftId;
 +      private final String _fieldName;
 +
 +      _Fields(short thriftId, String fieldName) {
 +        _thriftId = thriftId;
 +        _fieldName = fieldName;
 +      }
 +
 +      public short getThriftFieldId() {
 +        return _thriftId;
 +      }
 +
 +      public String getFieldName() {
 +        return _fieldName;
 +      }
 +    }
 +
 +    // isset id assignments
 +    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 +    static {
 +      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 +      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
 +          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +      tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
 +          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
 +      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)));
 +      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)));
 +      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(getAPIVersion_result.class, metaDataMap);
 +    }
 +
 +    public getAPIVersion_result() {
 +    }
 +
 +    public getAPIVersion_result(
 +      String success,
 +      org.apache.airavata.model.error.InvalidRequestException ire,
 +      org.apache.airavata.model.error.AiravataClientException ace,
 +      org.apache.airavata.model.error.AiravataSystemException ase,
 +      org.apache.airavata.model.error.AuthorizationException ae)
 +    {
 +      this();
 +      this.success = success;
 +      this.ire = ire;
 +      this.ace = ace;
 +      this.ase = ase;
 +      this.ae = ae;
 +    }
 +
 +    /**
 +     * Performs a deep copy on <i>other</i>.
 +     */
 +    public getAPIVersion_result(getAPIVersion_result other) {
 +      if (other.isSetSuccess()) {
 +        this.success = other.success;
 +      }
 +      if (other.isSetIre()) {
 +        this.ire = new org.apache.airavata.model.error.InvalidRequestException(other.ire);
 +      }
 +      if (other.isSetAce()) {
 +        this.ace = new org.apache.airavata.model.error.AiravataClientException(other.ace);
 +      }
 +      if (other.isSetAse()) {
 +        this.ase = new org.apache.airavata.model.error.AiravataSystemException(other.ase);
 +      }
 +      if (other.isSetAe()) {
 +        this.ae = new org.apache.airavata.model.error.AuthorizationException(other.ae);
 +      }
 +    }
 +
 +    public getAPIVersion_result deepCopy() {
 +      return new getAPIVersion_result(this);
 +    }
 +
 +    @Override
 +    public void clear() {
 +      this.success = null;
 +      this.ire = null;
 +      this.ace = null;
 +      this.ase = null;
 +      this.ae = null;
 +    }
 +
 +    public String getSuccess() {
 +      return this.success;
 +    }
 +
 +    public getAPIVersion_result setSuccess(String success) {
 +      this.success = success;
 +      return this;
 +    }
 +
 +    public void unsetSuccess() {
 +      this.success = null;
 +    }
 +
 +    /** Returns true if field success is set (has been assigned a value) and false otherwise */
 +    public boolean isSetSuccess() {
 +      return this.success != null;
 +    }
 +
 +    public void setSuccessIsSet(boolean value) {
 +      if (!value) {
 +        this.success = null;
 +      }
 +    }
 +
 +    public org.apache.airavata.model.error.InvalidRequestException getIre() {
 +      return this.ire;
 +    }
 +
 +    public getAPIVersion_result setIre(org.apache.airavata.model.error.InvalidRequestException ire) {
 +      this.ire = ire;
 +      return this;
 +    }
 +
 +    public void unsetIre() {
 +      this.ire = null;
 +    }
 +
 +    /** Returns true if field ire is set (has been assigned a value) and false otherwise */
 +    public boolean isSetIre() {
 +      return this.ire != null;
 +    }
 +
 +    public void setIreIsSet(boolean value) {
 +      if (!value) {
 +        this.ire = null;
 +      }
 +    }
 +
 +    public org.apache.airavata.model.error.AiravataClientException getAce() {
 +      return this.ace;
 +    }
 +
 +    public getAPIVersion_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 getAPIVersion_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 getAPIVersion_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) {
 +      switch (field) {
 +      case SUCCESS:
 +        if (value == null) {
 +          unsetSuccess();
 +        } else {
 +          setSuccess((String)value);
 +        }
 +        break;
 +
 +      case IRE:
 +        if (value == null) {
 +          unsetIre();
 +        } else {
 +          setIre((org.apache.airavata.model.error.InvalidRequestException)value);
 +        }
 +        break;
 +
 +      case ACE:
 +        if (value == null) {
 +          unsetAce();
 +        } else {
 +          setAce((org.apache.airavata.model.error.AiravataClientException)value);
 +        }
 +        break;
 +
 +      case ASE:
 +        if (value == null) {
 +          unsetAse();
 +        } else {
 +          setAse((org.apache.airavata.model.error.AiravataSystemException)value);
 +        }
 +        break;
 +
 +      case AE:
 +        if (value == null) {
 +          unsetAe();
 +        } else {
 +          setAe((org.apache.airavata.model.error.AuthorizationException)value);
 +        }
 +        break;
 +
 +      }
 +    }
 +
 +    public Object getFieldValue(_Fields field) {
 +      switch (field) {
 +      case SUCCESS:
 +        return getSuccess();
 +
 +      case IRE:
 +        return getIre();
 +
 +      case ACE:
 +        return getAce();
 +
 +      case ASE:
 +        return getAse();
 +
 +      case AE:
 +        return getAe();
 +
 +      }
 +      throw new 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();
 +      }
 +
 +      switch (field) {
 +      case SUCCESS:
 +        return isSetSuccess();
 +      case IRE:
 +        return isSetIre();
 +      case ACE:
 +        return isSetAce();
 +      case ASE:
 +        return isSetAse();
 +      case AE:
 +        return isSetAe();
 +      }
 +      throw new IllegalStateException();
 +    }
 +
 +    @Override
 +    public boolean equals(Object that) {
 +      if (that == null)
 +        return false;
 +      if (that instanceof getAPIVersion_result)
 +        return this.equals((getAPIVersion_result)that);
 +      return false;
 +    }
 +
 +    public boolean equals(getAPIVersion_result that) {
 +      if (that == null)
 +        return false;
 +
 +      boolean this_present_success = true && this.isSetSuccess();
 +      boolean that_present_success = true && that.isSetSuccess();
 +      if (this_present_success || that_present_success) {
 +        if (!(this_present_success && that_present_success))
 +          return false;
 +        if (!this.success.equals(that.success))
 +          return false;
 +      }
 +
 +      boolean this_present_ire = true && this.isSetIre();
 +      boolean that_present_ire = true && that.isSetIre();
 +      if (this_present_ire || that_present_ire) {
 +        if (!(this_present_ire && that_present_ire))
 +          return false;
 +        if (!this.ire.equals(that.ire))
 +          return false;
 +      }
 +
 +      boolean this_present_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>();
 +
 +      boolean present_success = true && (isSetSuccess());
 +      list.add(present_success);
 +      if (present_success)
 +        list.add(success);
 +
 +      boolean present_ire = true && (isSetIre());
 +      list.add(present_ire);
 +      if (present_ire)
 +        list.add(ire);
 +
 +      boolean present_ace = true && (isSetAce());
 +      list.add(present_ace);
 +      if (present_ace)
 +        list.add(ace);
 +
 +      boolean present_ase = true && (isSetAse());
 +      list.add(present_ase);
 +      if (present_ase)
 +        list.add(ase);
 +
 +      boolean present_ae = true && (isSetAe());
 +      list.add(present_ae);
 +      if (present_ae)
 +        list.add(ae);
 +
 +      return list.hashCode();
 +    }
 +
 +    @Override
 +    public int compareTo(getAPIVersion_result other) {
 +      if (!getClass().equals(other.getClass())) {
 +        return getClass().getName().compareTo(other.getClass().getName());
 +      }
 +
 +      int lastComparison = 0;
 +
 +      lastComparison = 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 = 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;
 +        }

<TRUNCATED>

[26/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 9c0c662,07e127d..dea5fab
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@@ -13429,853 -13103,74 +13437,921 @@@ class AiravataClient implements \Airava
      if ($result->ae !== null) {
        throw $result->ae;
      }
 -    throw new \Exception("getAllGroupsUserBelongs failed: unknown result");
 +    throw new \Exception("isWorkflowExistWithName failed: unknown result");
    }
  
++<<<<<<< HEAD
 +  public function registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
 +  {
 +    $this->send_registerDataProduct($authzToken, $dataProductModel);
 +    return $this->recv_registerDataProduct();
 +  }
++=======
+   public function isDataSharingEnabled()
+   {
+     $this->send_isDataSharingEnabled();
+     return $this->recv_isDataSharingEnabled();
+   }
+ 
+   public function send_isDataSharingEnabled()
+   {
+     $args = new \Airavata\API\Airavata_isDataSharingEnabled_args();
+     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+     if ($bin_accel)
+     {
+       thrift_protocol_write_binary($this->output_, 'isDataSharingEnabled', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+     }
+     else
+     {
+       $this->output_->writeMessageBegin('isDataSharingEnabled', TMessageType::CALL, $this->seqid_);
+       $args->write($this->output_);
+       $this->output_->writeMessageEnd();
+       $this->output_->getTransport()->flush();
+     }
+   }
+ 
+   public function recv_isDataSharingEnabled()
+   {
+     $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+     if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_isDataSharingEnabled_result', $this->input_->isStrictRead());
+     else
+     {
+       $rseqid = 0;
+       $fname = null;
+       $mtype = 0;
+ 
+       $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+       if ($mtype == TMessageType::EXCEPTION) {
+         $x = new TApplicationException();
+         $x->read($this->input_);
+         $this->input_->readMessageEnd();
+         throw $x;
+       }
+       $result = new \Airavata\API\Airavata_isDataSharingEnabled_result();
+       $result->read($this->input_);
+       $this->input_->readMessageEnd();
+     }
+     if ($result->success !== null) {
+       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 \Exception("isDataSharingEnabled failed: unknown result");
+   }
+ 
+ }
+ 
+ // HELPER FUNCTIONS AND STRUCTURES
++>>>>>>> upstream/develop
 +
 +  public function send_registerDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataProductModel $dataProductModel)
 +  {
 +    $args = new \Airavata\API\Airavata_registerDataProduct_args();
 +    $args->authzToken = $authzToken;
 +    $args->dataProductModel = $dataProductModel;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'registerDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('registerDataProduct', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_registerDataProduct()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerDataProduct_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_registerDataProduct_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("registerDataProduct failed: unknown result");
 +  }
 +
 +  public function getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
 +  {
 +    $this->send_getDataProduct($authzToken, $dataProductUri);
 +    return $this->recv_getDataProduct();
 +  }
 +
 +  public function send_getDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $dataProductUri)
 +  {
 +    $args = new \Airavata\API\Airavata_getDataProduct_args();
 +    $args->authzToken = $authzToken;
 +    $args->dataProductUri = $dataProductUri;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getDataProduct', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getDataProduct()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getDataProduct_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getDataProduct_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getDataProduct failed: unknown result");
 +  }
 +
 +  public function registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
 +  {
 +    $this->send_registerReplicaLocation($authzToken, $replicaLocationModel);
 +    return $this->recv_registerReplicaLocation();
 +  }
 +
 +  public function send_registerReplicaLocation(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Data\Replica\DataReplicaLocationModel $replicaLocationModel)
 +  {
 +    $args = new \Airavata\API\Airavata_registerReplicaLocation_args();
 +    $args->authzToken = $authzToken;
 +    $args->replicaLocationModel = $replicaLocationModel;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'registerReplicaLocation', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('registerReplicaLocation', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_registerReplicaLocation()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_registerReplicaLocation_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_registerReplicaLocation_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("registerReplicaLocation failed: unknown result");
 +  }
 +
 +  public function getParentDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
 +  {
 +    $this->send_getParentDataProduct($authzToken, $productUri);
 +    return $this->recv_getParentDataProduct();
 +  }
 +
 +  public function send_getParentDataProduct(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
 +  {
 +    $args = new \Airavata\API\Airavata_getParentDataProduct_args();
 +    $args->authzToken = $authzToken;
 +    $args->productUri = $productUri;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getParentDataProduct', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getParentDataProduct', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getParentDataProduct()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getParentDataProduct_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getParentDataProduct_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getParentDataProduct failed: unknown result");
 +  }
 +
 +  public function getChildDataProducts(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
 +  {
 +    $this->send_getChildDataProducts($authzToken, $productUri);
 +    return $this->recv_getChildDataProducts();
 +  }
 +
 +  public function send_getChildDataProducts(\Airavata\Model\Security\AuthzToken $authzToken, $productUri)
 +  {
 +    $args = new \Airavata\API\Airavata_getChildDataProducts_args();
 +    $args->authzToken = $authzToken;
 +    $args->productUri = $productUri;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getChildDataProducts', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getChildDataProducts', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getChildDataProducts()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getChildDataProducts_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getChildDataProducts_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getChildDataProducts failed: unknown result");
 +  }
 +
 +  public function shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
 +  {
 +    $this->send_shareResourceWithUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
 +    return $this->recv_shareResourceWithUsers();
 +  }
 +
 +  public function send_shareResourceWithUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
 +  {
 +    $args = new \Airavata\API\Airavata_shareResourceWithUsers_args();
 +    $args->authzToken = $authzToken;
 +    $args->resourceId = $resourceId;
 +    $args->resourceType = $resourceType;
 +    $args->userPermissionList = $userPermissionList;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'shareResourceWithUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('shareResourceWithUsers', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_shareResourceWithUsers()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_shareResourceWithUsers_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_shareResourceWithUsers_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("shareResourceWithUsers failed: unknown result");
 +  }
 +
 +  public function revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
 +  {
 +    $this->send_revokeSharingOfResourceFromUsers($authzToken, $resourceId, $resourceType, $userPermissionList);
 +    return $this->recv_revokeSharingOfResourceFromUsers();
 +  }
 +
 +  public function send_revokeSharingOfResourceFromUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, array $userPermissionList)
 +  {
 +    $args = new \Airavata\API\Airavata_revokeSharingOfResourceFromUsers_args();
 +    $args->authzToken = $authzToken;
 +    $args->resourceId = $resourceId;
 +    $args->resourceType = $resourceType;
 +    $args->userPermissionList = $userPermissionList;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'revokeSharingOfResourceFromUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('revokeSharingOfResourceFromUsers', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_revokeSharingOfResourceFromUsers()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_revokeSharingOfResourceFromUsers_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_revokeSharingOfResourceFromUsers_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("revokeSharingOfResourceFromUsers failed: unknown result");
 +  }
 +
 +  public function getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
 +  {
 +    $this->send_getAllAccessibleUsers($authzToken, $resourceId, $resourceType, $permissionType);
 +    return $this->recv_getAllAccessibleUsers();
 +  }
 +
 +  public function send_getAllAccessibleUsers(\Airavata\Model\Security\AuthzToken $authzToken, $resourceId, $resourceType, $permissionType)
 +  {
 +    $args = new \Airavata\API\Airavata_getAllAccessibleUsers_args();
 +    $args->authzToken = $authzToken;
 +    $args->resourceId = $resourceId;
 +    $args->resourceType = $resourceType;
 +    $args->permissionType = $permissionType;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getAllAccessibleUsers', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getAllAccessibleUsers', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getAllAccessibleUsers()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllAccessibleUsers_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getAllAccessibleUsers_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getAllAccessibleUsers failed: unknown result");
 +  }
 +
 +  public function createGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
 +  {
 +    $this->send_createGroup($authzToken, $groupModel);
 +    return $this->recv_createGroup();
 +  }
 +
 +  public function send_createGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
 +  {
 +    $args = new \Airavata\API\Airavata_createGroup_args();
 +    $args->authzToken = $authzToken;
 +    $args->groupModel = $groupModel;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'createGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('createGroup', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_createGroup()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_createGroup_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_createGroup_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("createGroup failed: unknown result");
 +  }
 +
 +  public function updateGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
 +  {
 +    $this->send_updateGroup($authzToken, $groupModel);
 +    return $this->recv_updateGroup();
 +  }
 +
 +  public function send_updateGroup(\Airavata\Model\Security\AuthzToken $authzToken, \Airavata\Model\Group\GroupModel $groupModel)
 +  {
 +    $args = new \Airavata\API\Airavata_updateGroup_args();
 +    $args->authzToken = $authzToken;
 +    $args->groupModel = $groupModel;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'updateGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('updateGroup', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_updateGroup()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_updateGroup_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_updateGroup_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("updateGroup failed: unknown result");
 +  }
 +
 +  public function deleteGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId, $ownerId, $gatewayId)
 +  {
 +    $this->send_deleteGroup($authzToken, $groupId, $ownerId, $gatewayId);
 +    return $this->recv_deleteGroup();
 +  }
 +
 +  public function send_deleteGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId, $ownerId, $gatewayId)
 +  {
 +    $args = new \Airavata\API\Airavata_deleteGroup_args();
 +    $args->authzToken = $authzToken;
 +    $args->groupId = $groupId;
 +    $args->ownerId = $ownerId;
 +    $args->gatewayId = $gatewayId;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'deleteGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('deleteGroup', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_deleteGroup()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_deleteGroup_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_deleteGroup_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("deleteGroup failed: unknown result");
 +  }
 +
 +  public function getGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId)
 +  {
 +    $this->send_getGroup($authzToken, $groupId);
 +    return $this->recv_getGroup();
 +  }
 +
 +  public function send_getGroup(\Airavata\Model\Security\AuthzToken $authzToken, $groupId)
 +  {
 +    $args = new \Airavata\API\Airavata_getGroup_args();
 +    $args->authzToken = $authzToken;
 +    $args->groupId = $groupId;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getGroup', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getGroup', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getGroup()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getGroup_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getGroup_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getGroup failed: unknown result");
 +  }
 +
 +  public function getAllGroupsUserBelongs(\Airavata\Model\Security\AuthzToken $authzToken, $userName, $gatewayId)
 +  {
 +    $this->send_getAllGroupsUserBelongs($authzToken, $userName, $gatewayId);
 +    return $this->recv_getAllGroupsUserBelongs();
 +  }
 +
 +  public function send_getAllGroupsUserBelongs(\Airavata\Model\Security\AuthzToken $authzToken, $userName, $gatewayId)
 +  {
 +    $args = new \Airavata\API\Airavata_getAllGroupsUserBelongs_args();
 +    $args->authzToken = $authzToken;
 +    $args->userName = $userName;
 +    $args->gatewayId = $gatewayId;
 +    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
 +    if ($bin_accel)
 +    {
 +      thrift_protocol_write_binary($this->output_, 'getAllGroupsUserBelongs', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
 +    }
 +    else
 +    {
 +      $this->output_->writeMessageBegin('getAllGroupsUserBelongs', TMessageType::CALL, $this->seqid_);
 +      $args->write($this->output_);
 +      $this->output_->writeMessageEnd();
 +      $this->output_->getTransport()->flush();
 +    }
 +  }
 +
 +  public function recv_getAllGroupsUserBelongs()
 +  {
 +    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
 +    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\Airavata\API\Airavata_getAllGroupsUserBelongs_result', $this->input_->isStrictRead());
 +    else
 +    {
 +      $rseqid = 0;
 +      $fname = null;
 +      $mtype = 0;
 +
 +      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
 +      if ($mtype == TMessageType::EXCEPTION) {
 +        $x = new TApplicationException();
 +        $x->read($this->input_);
 +        $this->input_->readMessageEnd();
 +        throw $x;
 +      }
 +      $result = new \Airavata\API\Airavata_getAllGroupsUserBelongs_result();
 +      $result->read($this->input_);
 +      $this->input_->readMessageEnd();
 +    }
 +    if ($result->success !== null) {
 +      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 \Exception("getAllGroupsUserBelongs failed: unknown result");
 +  }
 +
 +}
 +
 +// HELPER FUNCTIONS AND STRUCTURES
  
  class Airavata_getAPIVersion_args {
    static $_TSPEC;

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------


[23/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
index bab4802,0000000..bbd6188
mode 100644,000000..100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
@@@ -1,1169 -1,0 +1,1169 @@@
 +/**
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +/**
 + * Autogenerated by Thrift Compiler (0.9.3)
 + *
 + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 + *  @generated
 + */
 +package org.apache.airavata.model.appcatalog.userresourceprofile;
 +
 +import org.apache.thrift.scheme.IScheme;
 +import org.apache.thrift.scheme.SchemeFactory;
 +import org.apache.thrift.scheme.StandardScheme;
 +
 +import org.apache.thrift.scheme.TupleScheme;
 +import org.apache.thrift.protocol.TTupleProtocol;
 +import org.apache.thrift.protocol.TProtocolException;
 +import org.apache.thrift.EncodingUtils;
 +import org.apache.thrift.TException;
 +import org.apache.thrift.async.AsyncMethodCallback;
 +import org.apache.thrift.server.AbstractNonblockingServer.*;
 +import java.util.List;
 +import java.util.ArrayList;
 +import java.util.Map;
 +import java.util.HashMap;
 +import java.util.EnumMap;
 +import java.util.Set;
 +import java.util.HashSet;
 +import java.util.EnumSet;
 +import java.util.Collections;
 +import java.util.BitSet;
 +import java.nio.ByteBuffer;
 +import java.util.Arrays;
 +import javax.annotation.Generated;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 +/**
 + * User Resource Profile
 + * 
 + * userId:
 + * Unique identifier used to link user to corresponding user data model
 + * 
 + * gatewayID:
 + *  Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
 + * 
 + * credentialStoreToken:
 + *  Gateway's defualt credential store token.
 + * 
 + * computeResourcePreferences:
 + *  List of resource preferences for each of the registered compute resources.
 + * 
 + *  identityServerTenant:
 + * 
 + *  identityServerPwdCredToken:
 + * 
 + */
- @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
 +public class UserResourceProfile implements org.apache.thrift.TBase<UserResourceProfile, UserResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserResourceProfile> {
 +  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserResourceProfile");
 +
 +  private static final org.apache.thrift.protocol.TField USER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("userId", org.apache.thrift.protocol.TType.STRING, (short)1);
 +  private static final org.apache.thrift.protocol.TField GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("gatewayID", org.apache.thrift.protocol.TType.STRING, (short)2);
 +  private static final org.apache.thrift.protocol.TField CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("credentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)3);
 +  private static final org.apache.thrift.protocol.TField USER_COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("userComputeResourcePreferences", org.apache.thrift.protocol.TType.LIST, (short)4);
 +  private static final org.apache.thrift.protocol.TField USER_STORAGE_PREFERENCES_FIELD_DESC = new org.apache.thrift.protocol.TField("userStoragePreferences", org.apache.thrift.protocol.TType.LIST, (short)5);
 +  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_TENANT_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerTenant", org.apache.thrift.protocol.TType.STRING, (short)6);
 +  private static final org.apache.thrift.protocol.TField IDENTITY_SERVER_PWD_CRED_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("identityServerPwdCredToken", org.apache.thrift.protocol.TType.STRING, (short)7);
 +
 +  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 +  static {
 +    schemes.put(StandardScheme.class, new UserResourceProfileStandardSchemeFactory());
 +    schemes.put(TupleScheme.class, new UserResourceProfileTupleSchemeFactory());
 +  }
 +
 +  private String userId; // required
 +  private String gatewayID; // required
 +  private String credentialStoreToken; // optional
 +  private List<UserComputeResourcePreference> userComputeResourcePreferences; // optional
 +  private List<UserStoragePreference> userStoragePreferences; // optional
 +  private String identityServerTenant; // optional
 +  private String identityServerPwdCredToken; // optional
 +
 +  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
 +  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
 +    USER_ID((short)1, "userId"),
 +    GATEWAY_ID((short)2, "gatewayID"),
 +    CREDENTIAL_STORE_TOKEN((short)3, "credentialStoreToken"),
 +    USER_COMPUTE_RESOURCE_PREFERENCES((short)4, "userComputeResourcePreferences"),
 +    USER_STORAGE_PREFERENCES((short)5, "userStoragePreferences"),
 +    IDENTITY_SERVER_TENANT((short)6, "identityServerTenant"),
 +    IDENTITY_SERVER_PWD_CRED_TOKEN((short)7, "identityServerPwdCredToken");
 +
 +    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 +
 +    static {
 +      for (_Fields field : 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: // USER_ID
 +          return USER_ID;
 +        case 2: // GATEWAY_ID
 +          return GATEWAY_ID;
 +        case 3: // CREDENTIAL_STORE_TOKEN
 +          return CREDENTIAL_STORE_TOKEN;
 +        case 4: // USER_COMPUTE_RESOURCE_PREFERENCES
 +          return USER_COMPUTE_RESOURCE_PREFERENCES;
 +        case 5: // USER_STORAGE_PREFERENCES
 +          return USER_STORAGE_PREFERENCES;
 +        case 6: // IDENTITY_SERVER_TENANT
 +          return IDENTITY_SERVER_TENANT;
 +        case 7: // IDENTITY_SERVER_PWD_CRED_TOKEN
 +          return IDENTITY_SERVER_PWD_CRED_TOKEN;
 +        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!");
 +      return fields;
 +    }
 +
 +    /**
 +     * Find the _Fields constant that matches name, or null if its not found.
 +     */
 +    public static _Fields findByName(String name) {
 +      return byName.get(name);
 +    }
 +
 +    private final short _thriftId;
 +    private final String _fieldName;
 +
 +    _Fields(short thriftId, String fieldName) {
 +      _thriftId = thriftId;
 +      _fieldName = fieldName;
 +    }
 +
 +    public short getThriftFieldId() {
 +      return _thriftId;
 +    }
 +
 +    public String getFieldName() {
 +      return _fieldName;
 +    }
 +  }
 +
 +  // isset id assignments
 +  private static final _Fields optionals[] = {_Fields.CREDENTIAL_STORE_TOKEN,_Fields.USER_COMPUTE_RESOURCE_PREFERENCES,_Fields.USER_STORAGE_PREFERENCES,_Fields.IDENTITY_SERVER_TENANT,_Fields.IDENTITY_SERVER_PWD_CRED_TOKEN};
 +  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 +  static {
 +    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 +    tmpMap.put(_Fields.USER_ID, new org.apache.thrift.meta_data.FieldMetaData("userId", 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)));
 +    tmpMap.put(_Fields.CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("credentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.USER_COMPUTE_RESOURCE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("userComputeResourcePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
 +            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserComputeResourcePreference.class))));
 +    tmpMap.put(_Fields.USER_STORAGE_PREFERENCES, new org.apache.thrift.meta_data.FieldMetaData("userStoragePreferences", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
 +            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserStoragePreference.class))));
 +    tmpMap.put(_Fields.IDENTITY_SERVER_TENANT, new org.apache.thrift.meta_data.FieldMetaData("identityServerTenant", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.IDENTITY_SERVER_PWD_CRED_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("identityServerPwdCredToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    metaDataMap = Collections.unmodifiableMap(tmpMap);
 +    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserResourceProfile.class, metaDataMap);
 +  }
 +
 +  public UserResourceProfile() {
 +  }
 +
 +  public UserResourceProfile(
 +    String userId,
 +    String gatewayID)
 +  {
 +    this();
 +    this.userId = userId;
 +    this.gatewayID = gatewayID;
 +  }
 +
 +  /**
 +   * Performs a deep copy on <i>other</i>.
 +   */
 +  public UserResourceProfile(UserResourceProfile other) {
 +    if (other.isSetUserId()) {
 +      this.userId = other.userId;
 +    }
 +    if (other.isSetGatewayID()) {
 +      this.gatewayID = other.gatewayID;
 +    }
 +    if (other.isSetCredentialStoreToken()) {
 +      this.credentialStoreToken = other.credentialStoreToken;
 +    }
 +    if (other.isSetUserComputeResourcePreferences()) {
 +      List<UserComputeResourcePreference> __this__userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(other.userComputeResourcePreferences.size());
 +      for (UserComputeResourcePreference other_element : other.userComputeResourcePreferences) {
 +        __this__userComputeResourcePreferences.add(new UserComputeResourcePreference(other_element));
 +      }
 +      this.userComputeResourcePreferences = __this__userComputeResourcePreferences;
 +    }
 +    if (other.isSetUserStoragePreferences()) {
 +      List<UserStoragePreference> __this__userStoragePreferences = new ArrayList<UserStoragePreference>(other.userStoragePreferences.size());
 +      for (UserStoragePreference other_element : other.userStoragePreferences) {
 +        __this__userStoragePreferences.add(new UserStoragePreference(other_element));
 +      }
 +      this.userStoragePreferences = __this__userStoragePreferences;
 +    }
 +    if (other.isSetIdentityServerTenant()) {
 +      this.identityServerTenant = other.identityServerTenant;
 +    }
 +    if (other.isSetIdentityServerPwdCredToken()) {
 +      this.identityServerPwdCredToken = other.identityServerPwdCredToken;
 +    }
 +  }
 +
 +  public UserResourceProfile deepCopy() {
 +    return new UserResourceProfile(this);
 +  }
 +
 +  @Override
 +  public void clear() {
 +    this.userId = null;
 +    this.gatewayID = null;
 +    this.credentialStoreToken = null;
 +    this.userComputeResourcePreferences = null;
 +    this.userStoragePreferences = null;
 +    this.identityServerTenant = null;
 +    this.identityServerPwdCredToken = null;
 +  }
 +
 +  public String getUserId() {
 +    return this.userId;
 +  }
 +
 +  public void setUserId(String userId) {
 +    this.userId = userId;
 +  }
 +
 +  public void unsetUserId() {
 +    this.userId = null;
 +  }
 +
 +  /** Returns true if field userId is set (has been assigned a value) and false otherwise */
 +  public boolean isSetUserId() {
 +    return this.userId != null;
 +  }
 +
 +  public void setUserIdIsSet(boolean value) {
 +    if (!value) {
 +      this.userId = null;
 +    }
 +  }
 +
 +  public String getGatewayID() {
 +    return this.gatewayID;
 +  }
 +
 +  public void setGatewayID(String gatewayID) {
 +    this.gatewayID = gatewayID;
 +  }
 +
 +  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 String getCredentialStoreToken() {
 +    return this.credentialStoreToken;
 +  }
 +
 +  public void setCredentialStoreToken(String credentialStoreToken) {
 +    this.credentialStoreToken = credentialStoreToken;
 +  }
 +
 +  public void unsetCredentialStoreToken() {
 +    this.credentialStoreToken = null;
 +  }
 +
 +  /** Returns true if field credentialStoreToken is set (has been assigned a value) and false otherwise */
 +  public boolean isSetCredentialStoreToken() {
 +    return this.credentialStoreToken != null;
 +  }
 +
 +  public void setCredentialStoreTokenIsSet(boolean value) {
 +    if (!value) {
 +      this.credentialStoreToken = null;
 +    }
 +  }
 +
 +  public int getUserComputeResourcePreferencesSize() {
 +    return (this.userComputeResourcePreferences == null) ? 0 : this.userComputeResourcePreferences.size();
 +  }
 +
 +  public java.util.Iterator<UserComputeResourcePreference> getUserComputeResourcePreferencesIterator() {
 +    return (this.userComputeResourcePreferences == null) ? null : this.userComputeResourcePreferences.iterator();
 +  }
 +
 +  public void addToUserComputeResourcePreferences(UserComputeResourcePreference elem) {
 +    if (this.userComputeResourcePreferences == null) {
 +      this.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>();
 +    }
 +    this.userComputeResourcePreferences.add(elem);
 +  }
 +
 +  public List<UserComputeResourcePreference> getUserComputeResourcePreferences() {
 +    return this.userComputeResourcePreferences;
 +  }
 +
 +  public void setUserComputeResourcePreferences(List<UserComputeResourcePreference> userComputeResourcePreferences) {
 +    this.userComputeResourcePreferences = userComputeResourcePreferences;
 +  }
 +
 +  public void unsetUserComputeResourcePreferences() {
 +    this.userComputeResourcePreferences = null;
 +  }
 +
 +  /** Returns true if field userComputeResourcePreferences is set (has been assigned a value) and false otherwise */
 +  public boolean isSetUserComputeResourcePreferences() {
 +    return this.userComputeResourcePreferences != null;
 +  }
 +
 +  public void setUserComputeResourcePreferencesIsSet(boolean value) {
 +    if (!value) {
 +      this.userComputeResourcePreferences = null;
 +    }
 +  }
 +
 +  public int getUserStoragePreferencesSize() {
 +    return (this.userStoragePreferences == null) ? 0 : this.userStoragePreferences.size();
 +  }
 +
 +  public java.util.Iterator<UserStoragePreference> getUserStoragePreferencesIterator() {
 +    return (this.userStoragePreferences == null) ? null : this.userStoragePreferences.iterator();
 +  }
 +
 +  public void addToUserStoragePreferences(UserStoragePreference elem) {
 +    if (this.userStoragePreferences == null) {
 +      this.userStoragePreferences = new ArrayList<UserStoragePreference>();
 +    }
 +    this.userStoragePreferences.add(elem);
 +  }
 +
 +  public List<UserStoragePreference> getUserStoragePreferences() {
 +    return this.userStoragePreferences;
 +  }
 +
 +  public void setUserStoragePreferences(List<UserStoragePreference> userStoragePreferences) {
 +    this.userStoragePreferences = userStoragePreferences;
 +  }
 +
 +  public void unsetUserStoragePreferences() {
 +    this.userStoragePreferences = null;
 +  }
 +
 +  /** Returns true if field userStoragePreferences is set (has been assigned a value) and false otherwise */
 +  public boolean isSetUserStoragePreferences() {
 +    return this.userStoragePreferences != null;
 +  }
 +
 +  public void setUserStoragePreferencesIsSet(boolean value) {
 +    if (!value) {
 +      this.userStoragePreferences = null;
 +    }
 +  }
 +
 +  public String getIdentityServerTenant() {
 +    return this.identityServerTenant;
 +  }
 +
 +  public void setIdentityServerTenant(String identityServerTenant) {
 +    this.identityServerTenant = identityServerTenant;
 +  }
 +
 +  public void unsetIdentityServerTenant() {
 +    this.identityServerTenant = null;
 +  }
 +
 +  /** Returns true if field identityServerTenant is set (has been assigned a value) and false otherwise */
 +  public boolean isSetIdentityServerTenant() {
 +    return this.identityServerTenant != null;
 +  }
 +
 +  public void setIdentityServerTenantIsSet(boolean value) {
 +    if (!value) {
 +      this.identityServerTenant = null;
 +    }
 +  }
 +
 +  public String getIdentityServerPwdCredToken() {
 +    return this.identityServerPwdCredToken;
 +  }
 +
 +  public void setIdentityServerPwdCredToken(String identityServerPwdCredToken) {
 +    this.identityServerPwdCredToken = identityServerPwdCredToken;
 +  }
 +
 +  public void unsetIdentityServerPwdCredToken() {
 +    this.identityServerPwdCredToken = null;
 +  }
 +
 +  /** Returns true if field identityServerPwdCredToken is set (has been assigned a value) and false otherwise */
 +  public boolean isSetIdentityServerPwdCredToken() {
 +    return this.identityServerPwdCredToken != null;
 +  }
 +
 +  public void setIdentityServerPwdCredTokenIsSet(boolean value) {
 +    if (!value) {
 +      this.identityServerPwdCredToken = null;
 +    }
 +  }
 +
 +  public void setFieldValue(_Fields field, Object value) {
 +    switch (field) {
 +    case USER_ID:
 +      if (value == null) {
 +        unsetUserId();
 +      } else {
 +        setUserId((String)value);
 +      }
 +      break;
 +
 +    case GATEWAY_ID:
 +      if (value == null) {
 +        unsetGatewayID();
 +      } else {
 +        setGatewayID((String)value);
 +      }
 +      break;
 +
 +    case CREDENTIAL_STORE_TOKEN:
 +      if (value == null) {
 +        unsetCredentialStoreToken();
 +      } else {
 +        setCredentialStoreToken((String)value);
 +      }
 +      break;
 +
 +    case USER_COMPUTE_RESOURCE_PREFERENCES:
 +      if (value == null) {
 +        unsetUserComputeResourcePreferences();
 +      } else {
 +        setUserComputeResourcePreferences((List<UserComputeResourcePreference>)value);
 +      }
 +      break;
 +
 +    case USER_STORAGE_PREFERENCES:
 +      if (value == null) {
 +        unsetUserStoragePreferences();
 +      } else {
 +        setUserStoragePreferences((List<UserStoragePreference>)value);
 +      }
 +      break;
 +
 +    case IDENTITY_SERVER_TENANT:
 +      if (value == null) {
 +        unsetIdentityServerTenant();
 +      } else {
 +        setIdentityServerTenant((String)value);
 +      }
 +      break;
 +
 +    case IDENTITY_SERVER_PWD_CRED_TOKEN:
 +      if (value == null) {
 +        unsetIdentityServerPwdCredToken();
 +      } else {
 +        setIdentityServerPwdCredToken((String)value);
 +      }
 +      break;
 +
 +    }
 +  }
 +
 +  public Object getFieldValue(_Fields field) {
 +    switch (field) {
 +    case USER_ID:
 +      return getUserId();
 +
 +    case GATEWAY_ID:
 +      return getGatewayID();
 +
 +    case CREDENTIAL_STORE_TOKEN:
 +      return getCredentialStoreToken();
 +
 +    case USER_COMPUTE_RESOURCE_PREFERENCES:
 +      return getUserComputeResourcePreferences();
 +
 +    case USER_STORAGE_PREFERENCES:
 +      return getUserStoragePreferences();
 +
 +    case IDENTITY_SERVER_TENANT:
 +      return getIdentityServerTenant();
 +
 +    case IDENTITY_SERVER_PWD_CRED_TOKEN:
 +      return getIdentityServerPwdCredToken();
 +
 +    }
 +    throw new 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();
 +    }
 +
 +    switch (field) {
 +    case USER_ID:
 +      return isSetUserId();
 +    case GATEWAY_ID:
 +      return isSetGatewayID();
 +    case CREDENTIAL_STORE_TOKEN:
 +      return isSetCredentialStoreToken();
 +    case USER_COMPUTE_RESOURCE_PREFERENCES:
 +      return isSetUserComputeResourcePreferences();
 +    case USER_STORAGE_PREFERENCES:
 +      return isSetUserStoragePreferences();
 +    case IDENTITY_SERVER_TENANT:
 +      return isSetIdentityServerTenant();
 +    case IDENTITY_SERVER_PWD_CRED_TOKEN:
 +      return isSetIdentityServerPwdCredToken();
 +    }
 +    throw new IllegalStateException();
 +  }
 +
 +  @Override
 +  public boolean equals(Object that) {
 +    if (that == null)
 +      return false;
 +    if (that instanceof UserResourceProfile)
 +      return this.equals((UserResourceProfile)that);
 +    return false;
 +  }
 +
 +  public boolean equals(UserResourceProfile that) {
 +    if (that == null)
 +      return false;
 +
 +    boolean this_present_userId = true && this.isSetUserId();
 +    boolean that_present_userId = true && that.isSetUserId();
 +    if (this_present_userId || that_present_userId) {
 +      if (!(this_present_userId && that_present_userId))
 +        return false;
 +      if (!this.userId.equals(that.userId))
 +        return false;
 +    }
 +
 +    boolean this_present_gatewayID = true && this.isSetGatewayID();
 +    boolean that_present_gatewayID = true && that.isSetGatewayID();
 +    if (this_present_gatewayID || that_present_gatewayID) {
 +      if (!(this_present_gatewayID && that_present_gatewayID))
 +        return false;
 +      if (!this.gatewayID.equals(that.gatewayID))
 +        return false;
 +    }
 +
 +    boolean this_present_credentialStoreToken = true && this.isSetCredentialStoreToken();
 +    boolean that_present_credentialStoreToken = true && that.isSetCredentialStoreToken();
 +    if (this_present_credentialStoreToken || that_present_credentialStoreToken) {
 +      if (!(this_present_credentialStoreToken && that_present_credentialStoreToken))
 +        return false;
 +      if (!this.credentialStoreToken.equals(that.credentialStoreToken))
 +        return false;
 +    }
 +
 +    boolean this_present_userComputeResourcePreferences = true && this.isSetUserComputeResourcePreferences();
 +    boolean that_present_userComputeResourcePreferences = true && that.isSetUserComputeResourcePreferences();
 +    if (this_present_userComputeResourcePreferences || that_present_userComputeResourcePreferences) {
 +      if (!(this_present_userComputeResourcePreferences && that_present_userComputeResourcePreferences))
 +        return false;
 +      if (!this.userComputeResourcePreferences.equals(that.userComputeResourcePreferences))
 +        return false;
 +    }
 +
 +    boolean this_present_userStoragePreferences = true && this.isSetUserStoragePreferences();
 +    boolean that_present_userStoragePreferences = true && that.isSetUserStoragePreferences();
 +    if (this_present_userStoragePreferences || that_present_userStoragePreferences) {
 +      if (!(this_present_userStoragePreferences && that_present_userStoragePreferences))
 +        return false;
 +      if (!this.userStoragePreferences.equals(that.userStoragePreferences))
 +        return false;
 +    }
 +
 +    boolean this_present_identityServerTenant = true && this.isSetIdentityServerTenant();
 +    boolean that_present_identityServerTenant = true && that.isSetIdentityServerTenant();
 +    if (this_present_identityServerTenant || that_present_identityServerTenant) {
 +      if (!(this_present_identityServerTenant && that_present_identityServerTenant))
 +        return false;
 +      if (!this.identityServerTenant.equals(that.identityServerTenant))
 +        return false;
 +    }
 +
 +    boolean this_present_identityServerPwdCredToken = true && this.isSetIdentityServerPwdCredToken();
 +    boolean that_present_identityServerPwdCredToken = true && that.isSetIdentityServerPwdCredToken();
 +    if (this_present_identityServerPwdCredToken || that_present_identityServerPwdCredToken) {
 +      if (!(this_present_identityServerPwdCredToken && that_present_identityServerPwdCredToken))
 +        return false;
 +      if (!this.identityServerPwdCredToken.equals(that.identityServerPwdCredToken))
 +        return false;
 +    }
 +
 +    return true;
 +  }
 +
 +  @Override
 +  public int hashCode() {
 +    List<Object> list = new ArrayList<Object>();
 +
 +    boolean present_userId = true && (isSetUserId());
 +    list.add(present_userId);
 +    if (present_userId)
 +      list.add(userId);
 +
 +    boolean present_gatewayID = true && (isSetGatewayID());
 +    list.add(present_gatewayID);
 +    if (present_gatewayID)
 +      list.add(gatewayID);
 +
 +    boolean present_credentialStoreToken = true && (isSetCredentialStoreToken());
 +    list.add(present_credentialStoreToken);
 +    if (present_credentialStoreToken)
 +      list.add(credentialStoreToken);
 +
 +    boolean present_userComputeResourcePreferences = true && (isSetUserComputeResourcePreferences());
 +    list.add(present_userComputeResourcePreferences);
 +    if (present_userComputeResourcePreferences)
 +      list.add(userComputeResourcePreferences);
 +
 +    boolean present_userStoragePreferences = true && (isSetUserStoragePreferences());
 +    list.add(present_userStoragePreferences);
 +    if (present_userStoragePreferences)
 +      list.add(userStoragePreferences);
 +
 +    boolean present_identityServerTenant = true && (isSetIdentityServerTenant());
 +    list.add(present_identityServerTenant);
 +    if (present_identityServerTenant)
 +      list.add(identityServerTenant);
 +
 +    boolean present_identityServerPwdCredToken = true && (isSetIdentityServerPwdCredToken());
 +    list.add(present_identityServerPwdCredToken);
 +    if (present_identityServerPwdCredToken)
 +      list.add(identityServerPwdCredToken);
 +
 +    return list.hashCode();
 +  }
 +
 +  @Override
 +  public int compareTo(UserResourceProfile other) {
 +    if (!getClass().equals(other.getClass())) {
 +      return getClass().getName().compareTo(other.getClass().getName());
 +    }
 +
 +    int lastComparison = 0;
 +
 +    lastComparison = Boolean.valueOf(isSetUserId()).compareTo(other.isSetUserId());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetUserId()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userId, other.userId);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetGatewayID()).compareTo(other.isSetGatewayID());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetGatewayID()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.gatewayID, other.gatewayID);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetCredentialStoreToken()).compareTo(other.isSetCredentialStoreToken());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetCredentialStoreToken()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.credentialStoreToken, other.credentialStoreToken);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetUserComputeResourcePreferences()).compareTo(other.isSetUserComputeResourcePreferences());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetUserComputeResourcePreferences()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userComputeResourcePreferences, other.userComputeResourcePreferences);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetUserStoragePreferences()).compareTo(other.isSetUserStoragePreferences());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetUserStoragePreferences()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userStoragePreferences, other.userStoragePreferences);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetIdentityServerTenant()).compareTo(other.isSetIdentityServerTenant());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetIdentityServerTenant()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerTenant, other.identityServerTenant);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetIdentityServerPwdCredToken()).compareTo(other.isSetIdentityServerPwdCredToken());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetIdentityServerPwdCredToken()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.identityServerPwdCredToken, other.identityServerPwdCredToken);
 +      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);
 +  }
 +
 +  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 +    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
 +  }
 +
 +  @Override
 +  public String toString() {
 +    StringBuilder sb = new StringBuilder("UserResourceProfile(");
 +    boolean first = true;
 +
 +    sb.append("userId:");
 +    if (this.userId == null) {
 +      sb.append("null");
 +    } else {
 +      sb.append(this.userId);
 +    }
 +    first = false;
 +    if (!first) sb.append(", ");
 +    sb.append("gatewayID:");
 +    if (this.gatewayID == null) {
 +      sb.append("null");
 +    } else {
 +      sb.append(this.gatewayID);
 +    }
 +    first = false;
 +    if (isSetCredentialStoreToken()) {
 +      if (!first) sb.append(", ");
 +      sb.append("credentialStoreToken:");
 +      if (this.credentialStoreToken == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.credentialStoreToken);
 +      }
 +      first = false;
 +    }
 +    if (isSetUserComputeResourcePreferences()) {
 +      if (!first) sb.append(", ");
 +      sb.append("userComputeResourcePreferences:");
 +      if (this.userComputeResourcePreferences == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.userComputeResourcePreferences);
 +      }
 +      first = false;
 +    }
 +    if (isSetUserStoragePreferences()) {
 +      if (!first) sb.append(", ");
 +      sb.append("userStoragePreferences:");
 +      if (this.userStoragePreferences == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.userStoragePreferences);
 +      }
 +      first = false;
 +    }
 +    if (isSetIdentityServerTenant()) {
 +      if (!first) sb.append(", ");
 +      sb.append("identityServerTenant:");
 +      if (this.identityServerTenant == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.identityServerTenant);
 +      }
 +      first = false;
 +    }
 +    if (isSetIdentityServerPwdCredToken()) {
 +      if (!first) sb.append(", ");
 +      sb.append("identityServerPwdCredToken:");
 +      if (this.identityServerPwdCredToken == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.identityServerPwdCredToken);
 +      }
 +      first = false;
 +    }
 +    sb.append(")");
 +    return sb.toString();
 +  }
 +
 +  public void validate() throws org.apache.thrift.TException {
 +    // check for required fields
 +    if (!isSetUserId()) {
 +      throw new org.apache.thrift.protocol.TProtocolException("Required field 'userId' is unset! Struct:" + toString());
 +    }
 +
 +    if (!isSetGatewayID()) {
 +      throw new org.apache.thrift.protocol.TProtocolException("Required field 'gatewayID' is unset! Struct:" + toString());
 +    }
 +
 +    // 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 {
 +    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 UserResourceProfileStandardSchemeFactory implements SchemeFactory {
 +    public UserResourceProfileStandardScheme getScheme() {
 +      return new UserResourceProfileStandardScheme();
 +    }
 +  }
 +
 +  private static class UserResourceProfileStandardScheme extends StandardScheme<UserResourceProfile> {
 +
 +    public void read(org.apache.thrift.protocol.TProtocol iprot, UserResourceProfile 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: // USER_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.userId = iprot.readString();
 +              struct.setUserIdIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 2: // GATEWAY_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.gatewayID = iprot.readString();
 +              struct.setGatewayIDIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 3: // CREDENTIAL_STORE_TOKEN
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.credentialStoreToken = iprot.readString();
 +              struct.setCredentialStoreTokenIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 4: // USER_COMPUTE_RESOURCE_PREFERENCES
 +            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
 +              {
 +                org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
 +                struct.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(_list0.size);
 +                UserComputeResourcePreference _elem1;
 +                for (int _i2 = 0; _i2 < _list0.size; ++_i2)
 +                {
 +                  _elem1 = new UserComputeResourcePreference();
 +                  _elem1.read(iprot);
 +                  struct.userComputeResourcePreferences.add(_elem1);
 +                }
 +                iprot.readListEnd();
 +              }
 +              struct.setUserComputeResourcePreferencesIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 5: // USER_STORAGE_PREFERENCES
 +            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
 +              {
 +                org.apache.thrift.protocol.TList _list3 = iprot.readListBegin();
 +                struct.userStoragePreferences = new ArrayList<UserStoragePreference>(_list3.size);
 +                UserStoragePreference _elem4;
 +                for (int _i5 = 0; _i5 < _list3.size; ++_i5)
 +                {
 +                  _elem4 = new UserStoragePreference();
 +                  _elem4.read(iprot);
 +                  struct.userStoragePreferences.add(_elem4);
 +                }
 +                iprot.readListEnd();
 +              }
 +              struct.setUserStoragePreferencesIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 6: // IDENTITY_SERVER_TENANT
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.identityServerTenant = iprot.readString();
 +              struct.setIdentityServerTenantIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 7: // IDENTITY_SERVER_PWD_CRED_TOKEN
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.identityServerPwdCredToken = iprot.readString();
 +              struct.setIdentityServerPwdCredTokenIsSet(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();
 +      struct.validate();
 +    }
 +
 +    public void write(org.apache.thrift.protocol.TProtocol oprot, UserResourceProfile struct) throws org.apache.thrift.TException {
 +      struct.validate();
 +
 +      oprot.writeStructBegin(STRUCT_DESC);
 +      if (struct.userId != null) {
 +        oprot.writeFieldBegin(USER_ID_FIELD_DESC);
 +        oprot.writeString(struct.userId);
 +        oprot.writeFieldEnd();
 +      }
 +      if (struct.gatewayID != null) {
 +        oprot.writeFieldBegin(GATEWAY_ID_FIELD_DESC);
 +        oprot.writeString(struct.gatewayID);
 +        oprot.writeFieldEnd();
 +      }
 +      if (struct.credentialStoreToken != null) {
 +        if (struct.isSetCredentialStoreToken()) {
 +          oprot.writeFieldBegin(CREDENTIAL_STORE_TOKEN_FIELD_DESC);
 +          oprot.writeString(struct.credentialStoreToken);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.userComputeResourcePreferences != null) {
 +        if (struct.isSetUserComputeResourcePreferences()) {
 +          oprot.writeFieldBegin(USER_COMPUTE_RESOURCE_PREFERENCES_FIELD_DESC);
 +          {
 +            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.userComputeResourcePreferences.size()));
 +            for (UserComputeResourcePreference _iter6 : struct.userComputeResourcePreferences)
 +            {
 +              _iter6.write(oprot);
 +            }
 +            oprot.writeListEnd();
 +          }
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.userStoragePreferences != null) {
 +        if (struct.isSetUserStoragePreferences()) {
 +          oprot.writeFieldBegin(USER_STORAGE_PREFERENCES_FIELD_DESC);
 +          {
 +            oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.userStoragePreferences.size()));
 +            for (UserStoragePreference _iter7 : struct.userStoragePreferences)
 +            {
 +              _iter7.write(oprot);
 +            }
 +            oprot.writeListEnd();
 +          }
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.identityServerTenant != null) {
 +        if (struct.isSetIdentityServerTenant()) {
 +          oprot.writeFieldBegin(IDENTITY_SERVER_TENANT_FIELD_DESC);
 +          oprot.writeString(struct.identityServerTenant);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.identityServerPwdCredToken != null) {
 +        if (struct.isSetIdentityServerPwdCredToken()) {
 +          oprot.writeFieldBegin(IDENTITY_SERVER_PWD_CRED_TOKEN_FIELD_DESC);
 +          oprot.writeString(struct.identityServerPwdCredToken);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      oprot.writeFieldStop();
 +      oprot.writeStructEnd();
 +    }
 +
 +  }
 +
 +  private static class UserResourceProfileTupleSchemeFactory implements SchemeFactory {
 +    public UserResourceProfileTupleScheme getScheme() {
 +      return new UserResourceProfileTupleScheme();
 +    }
 +  }
 +
 +  private static class UserResourceProfileTupleScheme extends TupleScheme<UserResourceProfile> {
 +
 +    @Override
 +    public void write(org.apache.thrift.protocol.TProtocol prot, UserResourceProfile struct) throws org.apache.thrift.TException {
 +      TTupleProtocol oprot = (TTupleProtocol) prot;
 +      oprot.writeString(struct.userId);
 +      oprot.writeString(struct.gatewayID);
 +      BitSet optionals = new BitSet();
 +      if (struct.isSetCredentialStoreToken()) {
 +        optionals.set(0);
 +      }
 +      if (struct.isSetUserComputeResourcePreferences()) {
 +        optionals.set(1);
 +      }
 +      if (struct.isSetUserStoragePreferences()) {
 +        optionals.set(2);
 +      }
 +      if (struct.isSetIdentityServerTenant()) {
 +        optionals.set(3);
 +      }
 +      if (struct.isSetIdentityServerPwdCredToken()) {
 +        optionals.set(4);
 +      }
 +      oprot.writeBitSet(optionals, 5);
 +      if (struct.isSetCredentialStoreToken()) {
 +        oprot.writeString(struct.credentialStoreToken);
 +      }
 +      if (struct.isSetUserComputeResourcePreferences()) {
 +        {
 +          oprot.writeI32(struct.userComputeResourcePreferences.size());
 +          for (UserComputeResourcePreference _iter8 : struct.userComputeResourcePreferences)
 +          {
 +            _iter8.write(oprot);
 +          }
 +        }
 +      }
 +      if (struct.isSetUserStoragePreferences()) {
 +        {
 +          oprot.writeI32(struct.userStoragePreferences.size());
 +          for (UserStoragePreference _iter9 : struct.userStoragePreferences)
 +          {
 +            _iter9.write(oprot);
 +          }
 +        }
 +      }
 +      if (struct.isSetIdentityServerTenant()) {
 +        oprot.writeString(struct.identityServerTenant);
 +      }
 +      if (struct.isSetIdentityServerPwdCredToken()) {
 +        oprot.writeString(struct.identityServerPwdCredToken);
 +      }
 +    }
 +
 +    @Override
 +    public void read(org.apache.thrift.protocol.TProtocol prot, UserResourceProfile struct) throws org.apache.thrift.TException {
 +      TTupleProtocol iprot = (TTupleProtocol) prot;
 +      struct.userId = iprot.readString();
 +      struct.setUserIdIsSet(true);
 +      struct.gatewayID = iprot.readString();
 +      struct.setGatewayIDIsSet(true);
 +      BitSet incoming = iprot.readBitSet(5);
 +      if (incoming.get(0)) {
 +        struct.credentialStoreToken = iprot.readString();
 +        struct.setCredentialStoreTokenIsSet(true);
 +      }
 +      if (incoming.get(1)) {
 +        {
 +          org.apache.thrift.protocol.TList _list10 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
 +          struct.userComputeResourcePreferences = new ArrayList<UserComputeResourcePreference>(_list10.size);
 +          UserComputeResourcePreference _elem11;
 +          for (int _i12 = 0; _i12 < _list10.size; ++_i12)
 +          {
 +            _elem11 = new UserComputeResourcePreference();
 +            _elem11.read(iprot);
 +            struct.userComputeResourcePreferences.add(_elem11);
 +          }
 +        }
 +        struct.setUserComputeResourcePreferencesIsSet(true);
 +      }
 +      if (incoming.get(2)) {
 +        {
 +          org.apache.thrift.protocol.TList _list13 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
 +          struct.userStoragePreferences = new ArrayList<UserStoragePreference>(_list13.size);
 +          UserStoragePreference _elem14;
 +          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
 +          {
 +            _elem14 = new UserStoragePreference();
 +            _elem14.read(iprot);
 +            struct.userStoragePreferences.add(_elem14);
 +          }
 +        }
 +        struct.setUserStoragePreferencesIsSet(true);
 +      }
 +      if (incoming.get(3)) {
 +        struct.identityServerTenant = iprot.readString();
 +        struct.setIdentityServerTenantIsSet(true);
 +      }
 +      if (incoming.get(4)) {
 +        struct.identityServerPwdCredToken = iprot.readString();
 +        struct.setIdentityServerPwdCredTokenIsSet(true);
 +      }
 +    }
 +  }
 +
 +}
 +

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
index daa5df2,0000000..ba23b81
mode 100644,000000..100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
@@@ -1,728 -1,0 +1,728 @@@
 +/**
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +/**
 + * Autogenerated by Thrift Compiler (0.9.3)
 + *
 + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 + *  @generated
 + */
 +package org.apache.airavata.model.appcatalog.userresourceprofile;
 +
 +import org.apache.thrift.scheme.IScheme;
 +import org.apache.thrift.scheme.SchemeFactory;
 +import org.apache.thrift.scheme.StandardScheme;
 +
 +import org.apache.thrift.scheme.TupleScheme;
 +import org.apache.thrift.protocol.TTupleProtocol;
 +import org.apache.thrift.protocol.TProtocolException;
 +import org.apache.thrift.EncodingUtils;
 +import org.apache.thrift.TException;
 +import org.apache.thrift.async.AsyncMethodCallback;
 +import org.apache.thrift.server.AbstractNonblockingServer.*;
 +import java.util.List;
 +import java.util.ArrayList;
 +import java.util.Map;
 +import java.util.HashMap;
 +import java.util.EnumMap;
 +import java.util.Set;
 +import java.util.HashSet;
 +import java.util.EnumSet;
 +import java.util.Collections;
 +import java.util.BitSet;
 +import java.nio.ByteBuffer;
 +import java.util.Arrays;
 +import javax.annotation.Generated;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
- @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
 +public class UserStoragePreference implements org.apache.thrift.TBase<UserStoragePreference, UserStoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserStoragePreference> {
 +  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserStoragePreference");
 +
 +  private static final org.apache.thrift.protocol.TField STORAGE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("storageResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
 +  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
 +  private static final org.apache.thrift.protocol.TField FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("fileSystemRootLocation", org.apache.thrift.protocol.TType.STRING, (short)3);
 +  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)4);
 +
 +  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 +  static {
 +    schemes.put(StandardScheme.class, new UserStoragePreferenceStandardSchemeFactory());
 +    schemes.put(TupleScheme.class, new UserStoragePreferenceTupleSchemeFactory());
 +  }
 +
 +  private String storageResourceId; // required
 +  private String loginUserName; // optional
 +  private String fileSystemRootLocation; // optional
 +  private String resourceSpecificCredentialStoreToken; // optional
 +
 +  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
 +  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
 +    STORAGE_RESOURCE_ID((short)1, "storageResourceId"),
 +    LOGIN_USER_NAME((short)2, "loginUserName"),
 +    FILE_SYSTEM_ROOT_LOCATION((short)3, "fileSystemRootLocation"),
 +    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)4, "resourceSpecificCredentialStoreToken");
 +
 +    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 +
 +    static {
 +      for (_Fields field : 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: // STORAGE_RESOURCE_ID
 +          return STORAGE_RESOURCE_ID;
 +        case 2: // LOGIN_USER_NAME
 +          return LOGIN_USER_NAME;
 +        case 3: // FILE_SYSTEM_ROOT_LOCATION
 +          return FILE_SYSTEM_ROOT_LOCATION;
 +        case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
 +          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
 +        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!");
 +      return fields;
 +    }
 +
 +    /**
 +     * Find the _Fields constant that matches name, or null if its not found.
 +     */
 +    public static _Fields findByName(String name) {
 +      return byName.get(name);
 +    }
 +
 +    private final short _thriftId;
 +    private final String _fieldName;
 +
 +    _Fields(short thriftId, String fieldName) {
 +      _thriftId = thriftId;
 +      _fieldName = fieldName;
 +    }
 +
 +    public short getThriftFieldId() {
 +      return _thriftId;
 +    }
 +
 +    public String getFieldName() {
 +      return _fieldName;
 +    }
 +  }
 +
 +  // isset id assignments
 +  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.FILE_SYSTEM_ROOT_LOCATION,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN};
 +  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 +  static {
 +    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 +    tmpMap.put(_Fields.STORAGE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("storageResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.FILE_SYSTEM_ROOT_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("fileSystemRootLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    metaDataMap = Collections.unmodifiableMap(tmpMap);
 +    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserStoragePreference.class, metaDataMap);
 +  }
 +
 +  public UserStoragePreference() {
 +  }
 +
 +  public UserStoragePreference(
 +    String storageResourceId)
 +  {
 +    this();
 +    this.storageResourceId = storageResourceId;
 +  }
 +
 +  /**
 +   * Performs a deep copy on <i>other</i>.
 +   */
 +  public UserStoragePreference(UserStoragePreference other) {
 +    if (other.isSetStorageResourceId()) {
 +      this.storageResourceId = other.storageResourceId;
 +    }
 +    if (other.isSetLoginUserName()) {
 +      this.loginUserName = other.loginUserName;
 +    }
 +    if (other.isSetFileSystemRootLocation()) {
 +      this.fileSystemRootLocation = other.fileSystemRootLocation;
 +    }
 +    if (other.isSetResourceSpecificCredentialStoreToken()) {
 +      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
 +    }
 +  }
 +
 +  public UserStoragePreference deepCopy() {
 +    return new UserStoragePreference(this);
 +  }
 +
 +  @Override
 +  public void clear() {
 +    this.storageResourceId = null;
 +    this.loginUserName = null;
 +    this.fileSystemRootLocation = null;
 +    this.resourceSpecificCredentialStoreToken = null;
 +  }
 +
 +  public String getStorageResourceId() {
 +    return this.storageResourceId;
 +  }
 +
 +  public void setStorageResourceId(String storageResourceId) {
 +    this.storageResourceId = storageResourceId;
 +  }
 +
 +  public void unsetStorageResourceId() {
 +    this.storageResourceId = null;
 +  }
 +
 +  /** Returns true if field storageResourceId is set (has been assigned a value) and false otherwise */
 +  public boolean isSetStorageResourceId() {
 +    return this.storageResourceId != null;
 +  }
 +
 +  public void setStorageResourceIdIsSet(boolean value) {
 +    if (!value) {
 +      this.storageResourceId = null;
 +    }
 +  }
 +
 +  public String getLoginUserName() {
 +    return this.loginUserName;
 +  }
 +
 +  public void setLoginUserName(String loginUserName) {
 +    this.loginUserName = loginUserName;
 +  }
 +
 +  public void unsetLoginUserName() {
 +    this.loginUserName = null;
 +  }
 +
 +  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
 +  public boolean isSetLoginUserName() {
 +    return this.loginUserName != null;
 +  }
 +
 +  public void setLoginUserNameIsSet(boolean value) {
 +    if (!value) {
 +      this.loginUserName = null;
 +    }
 +  }
 +
 +  public String getFileSystemRootLocation() {
 +    return this.fileSystemRootLocation;
 +  }
 +
 +  public void setFileSystemRootLocation(String fileSystemRootLocation) {
 +    this.fileSystemRootLocation = fileSystemRootLocation;
 +  }
 +
 +  public void unsetFileSystemRootLocation() {
 +    this.fileSystemRootLocation = null;
 +  }
 +
 +  /** Returns true if field fileSystemRootLocation is set (has been assigned a value) and false otherwise */
 +  public boolean isSetFileSystemRootLocation() {
 +    return this.fileSystemRootLocation != null;
 +  }
 +
 +  public void setFileSystemRootLocationIsSet(boolean value) {
 +    if (!value) {
 +      this.fileSystemRootLocation = null;
 +    }
 +  }
 +
 +  public String getResourceSpecificCredentialStoreToken() {
 +    return this.resourceSpecificCredentialStoreToken;
 +  }
 +
 +  public void setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
 +    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
 +  }
 +
 +  public void unsetResourceSpecificCredentialStoreToken() {
 +    this.resourceSpecificCredentialStoreToken = null;
 +  }
 +
 +  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
 +  public boolean isSetResourceSpecificCredentialStoreToken() {
 +    return this.resourceSpecificCredentialStoreToken != null;
 +  }
 +
 +  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
 +    if (!value) {
 +      this.resourceSpecificCredentialStoreToken = null;
 +    }
 +  }
 +
 +  public void setFieldValue(_Fields field, Object value) {
 +    switch (field) {
 +    case STORAGE_RESOURCE_ID:
 +      if (value == null) {
 +        unsetStorageResourceId();
 +      } else {
 +        setStorageResourceId((String)value);
 +      }
 +      break;
 +
 +    case LOGIN_USER_NAME:
 +      if (value == null) {
 +        unsetLoginUserName();
 +      } else {
 +        setLoginUserName((String)value);
 +      }
 +      break;
 +
 +    case FILE_SYSTEM_ROOT_LOCATION:
 +      if (value == null) {
 +        unsetFileSystemRootLocation();
 +      } else {
 +        setFileSystemRootLocation((String)value);
 +      }
 +      break;
 +
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      if (value == null) {
 +        unsetResourceSpecificCredentialStoreToken();
 +      } else {
 +        setResourceSpecificCredentialStoreToken((String)value);
 +      }
 +      break;
 +
 +    }
 +  }
 +
 +  public Object getFieldValue(_Fields field) {
 +    switch (field) {
 +    case STORAGE_RESOURCE_ID:
 +      return getStorageResourceId();
 +
 +    case LOGIN_USER_NAME:
 +      return getLoginUserName();
 +
 +    case FILE_SYSTEM_ROOT_LOCATION:
 +      return getFileSystemRootLocation();
 +
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      return getResourceSpecificCredentialStoreToken();
 +
 +    }
 +    throw new 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();
 +    }
 +
 +    switch (field) {
 +    case STORAGE_RESOURCE_ID:
 +      return isSetStorageResourceId();
 +    case LOGIN_USER_NAME:
 +      return isSetLoginUserName();
 +    case FILE_SYSTEM_ROOT_LOCATION:
 +      return isSetFileSystemRootLocation();
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      return isSetResourceSpecificCredentialStoreToken();
 +    }
 +    throw new IllegalStateException();
 +  }
 +
 +  @Override
 +  public boolean equals(Object that) {
 +    if (that == null)
 +      return false;
 +    if (that instanceof UserStoragePreference)
 +      return this.equals((UserStoragePreference)that);
 +    return false;
 +  }
 +
 +  public boolean equals(UserStoragePreference that) {
 +    if (that == null)
 +      return false;
 +
 +    boolean this_present_storageResourceId = true && this.isSetStorageResourceId();
 +    boolean that_present_storageResourceId = true && that.isSetStorageResourceId();
 +    if (this_present_storageResourceId || that_present_storageResourceId) {
 +      if (!(this_present_storageResourceId && that_present_storageResourceId))
 +        return false;
 +      if (!this.storageResourceId.equals(that.storageResourceId))
 +        return false;
 +    }
 +
 +    boolean this_present_loginUserName = true && this.isSetLoginUserName();
 +    boolean that_present_loginUserName = true && that.isSetLoginUserName();
 +    if (this_present_loginUserName || that_present_loginUserName) {
 +      if (!(this_present_loginUserName && that_present_loginUserName))
 +        return false;
 +      if (!this.loginUserName.equals(that.loginUserName))
 +        return false;
 +    }
 +
 +    boolean this_present_fileSystemRootLocation = true && this.isSetFileSystemRootLocation();
 +    boolean that_present_fileSystemRootLocation = true && that.isSetFileSystemRootLocation();
 +    if (this_present_fileSystemRootLocation || that_present_fileSystemRootLocation) {
 +      if (!(this_present_fileSystemRootLocation && that_present_fileSystemRootLocation))
 +        return false;
 +      if (!this.fileSystemRootLocation.equals(that.fileSystemRootLocation))
 +        return false;
 +    }
 +
 +    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
 +    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
 +    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
 +      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
 +        return false;
 +      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
 +        return false;
 +    }
 +
 +    return true;
 +  }
 +
 +  @Override
 +  public int hashCode() {
 +    List<Object> list = new ArrayList<Object>();
 +
 +    boolean present_storageResourceId = true && (isSetStorageResourceId());
 +    list.add(present_storageResourceId);
 +    if (present_storageResourceId)
 +      list.add(storageResourceId);
 +
 +    boolean present_loginUserName = true && (isSetLoginUserName());
 +    list.add(present_loginUserName);
 +    if (present_loginUserName)
 +      list.add(loginUserName);
 +
 +    boolean present_fileSystemRootLocation = true && (isSetFileSystemRootLocation());
 +    list.add(present_fileSystemRootLocation);
 +    if (present_fileSystemRootLocation)
 +      list.add(fileSystemRootLocation);
 +
 +    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
 +    list.add(present_resourceSpecificCredentialStoreToken);
 +    if (present_resourceSpecificCredentialStoreToken)
 +      list.add(resourceSpecificCredentialStoreToken);
 +
 +    return list.hashCode();
 +  }
 +
 +  @Override
 +  public int compareTo(UserStoragePreference other) {
 +    if (!getClass().equals(other.getClass())) {
 +      return getClass().getName().compareTo(other.getClass().getName());
 +    }
 +
 +    int lastComparison = 0;
 +
 +    lastComparison = Boolean.valueOf(isSetStorageResourceId()).compareTo(other.isSetStorageResourceId());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetStorageResourceId()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.storageResourceId, other.storageResourceId);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetLoginUserName()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetFileSystemRootLocation()).compareTo(other.isSetFileSystemRootLocation());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetFileSystemRootLocation()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.fileSystemRootLocation, other.fileSystemRootLocation);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetResourceSpecificCredentialStoreToken()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
 +      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);
 +  }
 +
 +  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 +    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
 +  }
 +
 +  @Override
 +  public String toString() {
 +    StringBuilder sb = new StringBuilder("UserStoragePreference(");
 +    boolean first = true;
 +
 +    sb.append("storageResourceId:");
 +    if (this.storageResourceId == null) {
 +      sb.append("null");
 +    } else {
 +      sb.append(this.storageResourceId);
 +    }
 +    first = false;
 +    if (isSetLoginUserName()) {
 +      if (!first) sb.append(", ");
 +      sb.append("loginUserName:");
 +      if (this.loginUserName == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.loginUserName);
 +      }
 +      first = false;
 +    }
 +    if (isSetFileSystemRootLocation()) {
 +      if (!first) sb.append(", ");
 +      sb.append("fileSystemRootLocation:");
 +      if (this.fileSystemRootLocation == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.fileSystemRootLocation);
 +      }
 +      first = false;
 +    }
 +    if (isSetResourceSpecificCredentialStoreToken()) {
 +      if (!first) sb.append(", ");
 +      sb.append("resourceSpecificCredentialStoreToken:");
 +      if (this.resourceSpecificCredentialStoreToken == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.resourceSpecificCredentialStoreToken);
 +      }
 +      first = false;
 +    }
 +    sb.append(")");
 +    return sb.toString();
 +  }
 +
 +  public void validate() throws org.apache.thrift.TException {
 +    // check for required fields
 +    if (!isSetStorageResourceId()) {
 +      throw new org.apache.thrift.protocol.TProtocolException("Required field 'storageResourceId' is unset! Struct:" + toString());
 +    }
 +
 +    // 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 {
 +    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 UserStoragePreferenceStandardSchemeFactory implements SchemeFactory {
 +    public UserStoragePreferenceStandardScheme getScheme() {
 +      return new UserStoragePreferenceStandardScheme();
 +    }
 +  }
 +
 +  private static class UserStoragePreferenceStandardScheme extends StandardScheme<UserStoragePreference> {
 +
 +    public void read(org.apache.thrift.protocol.TProtocol iprot, UserStoragePreference 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: // STORAGE_RESOURCE_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.storageResourceId = iprot.readString();
 +              struct.setStorageResourceIdIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 2: // LOGIN_USER_NAME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.loginUserName = iprot.readString();
 +              struct.setLoginUserNameIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 3: // FILE_SYSTEM_ROOT_LOCATION
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.fileSystemRootLocation = iprot.readString();
 +              struct.setFileSystemRootLocationIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 4: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.resourceSpecificCredentialStoreToken = iprot.readString();
 +              struct.setResourceSpecificCredentialStoreTokenIsSet(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();
 +      struct.validate();
 +    }
 +
 +    public void write(org.apache.thrift.protocol.TProtocol oprot, UserStoragePreference struct) throws org.apache.thrift.TException {
 +      struct.validate();
 +
 +      oprot.writeStructBegin(STRUCT_DESC);
 +      if (struct.storageResourceId != null) {
 +        oprot.writeFieldBegin(STORAGE_RESOURCE_ID_FIELD_DESC);
 +        oprot.writeString(struct.storageResourceId);
 +        oprot.writeFieldEnd();
 +      }
 +      if (struct.loginUserName != null) {
 +        if (struct.isSetLoginUserName()) {
 +          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
 +          oprot.writeString(struct.loginUserName);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.fileSystemRootLocation != null) {
 +        if (struct.isSetFileSystemRootLocation()) {
 +          oprot.writeFieldBegin(FILE_SYSTEM_ROOT_LOCATION_FIELD_DESC);
 +          oprot.writeString(struct.fileSystemRootLocation);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.resourceSpecificCredentialStoreToken != null) {
 +        if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
 +          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      oprot.writeFieldStop();
 +      oprot.writeStructEnd();
 +    }
 +
 +  }
 +
 +  private static class UserStoragePreferenceTupleSchemeFactory implements SchemeFactory {
 +    public UserStoragePreferenceTupleScheme getScheme() {
 +      return new UserStoragePreferenceTupleScheme();
 +    }
 +  }
 +
 +  private static class UserStoragePreferenceTupleScheme extends TupleScheme<UserStoragePreference> {
 +
 +    @Override
 +    public void write(org.apache.thrift.protocol.TProtocol prot, UserStoragePreference struct) throws org.apache.thrift.TException {
 +      TTupleProtocol oprot = (TTupleProtocol) prot;
 +      oprot.writeString(struct.storageResourceId);
 +      BitSet optionals = new BitSet();
 +      if (struct.isSetLoginUserName()) {
 +        optionals.set(0);
 +      }
 +      if (struct.isSetFileSystemRootLocation()) {
 +        optionals.set(1);
 +      }
 +      if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +        optionals.set(2);
 +      }
 +      oprot.writeBitSet(optionals, 3);
 +      if (struct.isSetLoginUserName()) {
 +        oprot.writeString(struct.loginUserName);
 +      }
 +      if (struct.isSetFileSystemRootLocation()) {
 +        oprot.writeString(struct.fileSystemRootLocation);
 +      }
 +      if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
 +      }
 +    }
 +
 +    @Override
 +    public void read(org.apache.thrift.protocol.TProtocol prot, UserStoragePreference struct) throws org.apache.thrift.TException {
 +      TTupleProtocol iprot = (TTupleProtocol) prot;
 +      struct.storageResourceId = iprot.readString();
 +      struct.setStorageResourceIdIsSet(true);
 +      BitSet incoming = iprot.readBitSet(3);
 +      if (incoming.get(0)) {
 +        struct.loginUserName = iprot.readString();
 +        struct.setLoginUserNameIsSet(true);
 +      }
 +      if (incoming.get(1)) {
 +        struct.fileSystemRootLocation = iprot.readString();
 +        struct.setFileSystemRootLocationIsSet(true);
 +      }
 +      if (incoming.get(2)) {
 +        struct.resourceSpecificCredentialStoreToken = iprot.readString();
 +        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
 +      }
 +    }
 +  }
 +
 +}
 +

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index 620b937,620b937..8f23300
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@@ -77,7 -77,7 +77,7 @@@ import org.slf4j.LoggerFactory
   *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 19df1e3,19df1e3..7684d5d
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@@ -77,7 -77,7 +77,7 @@@ import org.slf4j.LoggerFactory
   *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index 2adadf4,2adadf4..5a36d87
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 154f28c,154f28c..6a2c454
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index 1ef9ee3,1ef9ee3..f611560
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@@ -58,7 -58,7 +58,7 @@@ import org.slf4j.LoggerFactory
   * during the experiment launch operation
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index b9678e0,b9678e0..6c04333
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@@ -61,7 -61,7 +61,7 @@@ import org.slf4j.LoggerFactory
   *   Lower the numerical number, higher the priority
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index 9e586ce,9e586ce..b2e0fc0
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * sshPort:
   *  If a non-default port needs to used, specify it.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index 3db57a7,3db57a7..2a63d72
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * sshPort:
   *  If a non-defualt port needs to used, specify it.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index 31c4ddb,31c4ddb..04c1849
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * sshPort:
   *  If a non-default port needs to used, specify it.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index 8d54c40,8d54c40..713979b
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@@ -57,7 -57,7 +57,7 @@@ import org.slf4j.LoggerFactory
   * unicoreEndPointURL:
   *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
  


[03/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
new file mode 100644
index 0000000..49915b5
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
@@ -0,0 +1,106 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "USER_STORAGE_PREFERENCE")
+@IdClass(StoragePreferencePK.class)
+public class UserStoragePreference {
+    @Id
+    @Column(name = "USER_ID")
+    private String userId;
+    @Id
+    @Column(name = "GATEWAY_ID")
+    private String gatewayId;
+    @Id
+    @Column(name = "STORAGE_RESOURCE_ID")
+    private String storageResourceId;
+    @Column(name = "LOGIN_USERNAME")
+    private String loginUserName;
+    @Column(name = "FS_ROOT_LOCATION")
+    private String fsRootLocation;
+    @Column(name = "RESOURCE_CS_TOKEN")
+    private String computeResourceCSToken;
+
+    @ManyToOne(cascade= CascadeType.MERGE)
+    @JoinColumn(name = "GATEWAY_ID")
+    private UserResourceProfile userResourceProfile;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public UserResourceProfile getUserResourceProfile() {
+        return userResourceProfile;
+    }
+
+    public void setUserResourceProfile(UserResourceProfile userResourceProfile) {
+        this.userResourceProfile = userResourceProfile;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getComputeResourceCSToken() {
+        return computeResourceCSToken;
+    }
+
+    public void setComputeResourceCSToken(String computeResourceCSToken) {
+        this.computeResourceCSToken = computeResourceCSToken;
+    }
+
+    public String getFsRootLocation() {
+        return fsRootLocation;
+    }
+
+    public void setFsRootLocation(String fsRootLocation) {
+        this.fsRootLocation = fsRootLocation;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
new file mode 100644
index 0000000..35a6f42
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
@@ -0,0 +1,73 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.model;
+
+import java.io.Serializable;
+
+public class UserStoragePreferencePK implements Serializable {
+
+    private String userId;
+    private String gatewayId;
+    private String storageResourceId;
+
+    public UserStoragePreferencePK(String userId, String storageResourceId) {
+        this.userId = userId;
+        this.storageResourceId = storageResourceId;
+    }
+
+    public UserStoragePreferencePK() {
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return 1;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
index 2fb4a77..0846a47 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
@@ -54,8 +54,11 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public static final String APPLICATION_OUTPUT = "ApplicationIntOutput";
     public static final String WORKFLOW_OUTPUT = "WorkflowOutput";
     public static final String GATEWAY_PROFILE = "GatewayProfile";
+    public static final String USER_RESOURCE_PROFILE = "userResourceProfile";
     public static final String COMPUTE_RESOURCE_PREFERENCE = "ComputeResourcePreference";
+    public static final String USER_COMPUTE_RESOURCE_PREFERENCE = "UserComputeResourcePreference";
     public static final String STORAGE_PREFERENCE = "StoragePreference";
+    public static final String USER_STORAGE_PREFERENCE = "UserStoragePreference";
 	public static final String BATCH_QUEUE = "BatchQueue";
 	public static final String COMPUTE_RESOURCE_FILE_SYSTEM = "ComputeResourceFileSystem";
 	public static final String JOB_SUBMISSION_INTERFACE = "JobSubmissionInterface";
@@ -285,6 +288,12 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String GATEWAY_DESC = "gatewayDesc";
     }
 
+    public final class UserResourceProfileConstants {
+        public static final String GATEWAY_ID = "gatewayID";
+        public static final String USER_ID = "userId";
+        public static final String GATEWAY_DESC = "gatewayDesc";
+    }
+
     public final class ComputeResourcePreferenceConstants {
         public static final String GATEWAY_ID = "gatewayId";
         public static final String RESOURCE_ID = "resourceId";
@@ -296,6 +305,15 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String ALLOCATION_PROJECT_NUMBER = "projectNumber";
     }
 
+    public final class UserComputeResourcePreferenceConstants {
+        public static final String GATEWAY_ID = "gatewayId";
+        public static final String USER_ID = "userId";
+        public static final String RESOURCE_ID = "resourceId";
+        public static final String PREFERED_BATCH_QUEUE = "batchQueue";
+        public static final String SCRATCH_LOCATION = "scratchLocation";
+        public static final String ALLOCATION_PROJECT_NUMBER = "projectNumber";
+    }
+
     // Batch Queue Table
  	public final class BatchQueueConstants {
  		public static final String COMPUTE_RESOURCE_ID = "computeResourceId";
@@ -342,6 +360,12 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String STORAGE_ID = "storageResourceId";
     }
 
+    public final class UserStoragePreferenceConstants {
+        public static final String GATEWAY_ID = "gatewayId";
+        public static final String USER_ID = "userId";
+        public static final String STORAGE_ID = "storageResourceId";
+    }
+
     public final class StorageInterfaceConstants {
         public static final String STORAGE_RESOURCE_ID = "storageResourceId";
         public static final String DATA_MOVEMENT_PROTOCOL = "dataMovementProtocol";

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java
index 67dd77c..bad90a2 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/ComputeHostPreferenceResource.java
@@ -142,6 +142,10 @@ public class ComputeHostPreferenceResource extends AppCatAbstractResource {
         this.gatewayProfile = gatewayProfile;
     }
 
+    public void setUserResourceProfile(GatewayProfileResource gatewayProfile) {
+        this.gatewayProfile = gatewayProfile;
+    }
+
     public ComputeResourceResource getComputeHostResource() {
         return computeHostResource;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
new file mode 100644
index 0000000..180625b
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
@@ -0,0 +1,451 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.ComputeResource;
+import org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile;
+import org.apache.airavata.registry.core.app.catalog.model.UserComputeResourcePreference;
+import org.apache.airavata.registry.core.app.catalog.model.UserComputeResourcePreferencePK;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(UserComputeHostPreferenceResource.class);
+    private String gatewayId;
+    private String resourceId;
+    private String userId;
+    private String batchQueue;
+    private String scratchLocation;
+    private String projectNumber;
+    private String loginUserName;
+    private String resourceCSToken;
+    private String qualityOfService;
+    private String reservation;
+    private Timestamp reservationStartTime;
+    private Timestamp reservationEndTime;
+
+    private UserResourceProfileResource userResourceProfileResource;
+    private ComputeResourceResource computeHostResource;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public String getResourceId() {
+        return resourceId;
+    }
+
+    public void setResourceId(String resourceId) {
+        this.resourceId = resourceId;
+    }
+
+    public String getBatchQueue() {
+        return batchQueue;
+    }
+
+    public void setBatchQueue(String batchQueue) {
+        this.batchQueue = batchQueue;
+    }
+
+    public String getScratchLocation() {
+        return scratchLocation;
+    }
+
+    public void setScratchLocation(String scratchLocation) {
+        this.scratchLocation = scratchLocation;
+    }
+
+    public String getProjectNumber() {
+        return projectNumber;
+    }
+
+    public void setProjectNumber(String projectNumber) {
+        this.projectNumber = projectNumber;
+    }
+
+    public ComputeResourceResource getComputeHostResource() {
+        return computeHostResource;
+    }
+
+    public void setComputeHostResource(ComputeResourceResource computeHostResource) {
+        this.computeHostResource = computeHostResource;
+    }
+
+    public UserResourceProfileResource getUserResourceProfileResource() {
+        return userResourceProfileResource;
+    }
+
+    public void setUserResourceProfileResource(UserResourceProfileResource userResourceProfileResource) {
+        this.userResourceProfileResource = userResourceProfileResource;
+    }
+
+    public String getResourceCSToken() {
+        return resourceCSToken;
+    }
+
+    public void setResourceCSToken(String resourceCSToken) {
+        this.resourceCSToken = resourceCSToken;
+    }
+
+
+    public String getQualityOfService() {
+        return qualityOfService;
+    }
+
+    public void setQualityOfService(String qualityOfService) {
+        this.qualityOfService = qualityOfService;
+    }
+
+    public String getReservation() {
+        return reservation;
+    }
+
+    public void setReservation(String reservation) {
+        this.reservation = reservation;
+    }
+
+    public Timestamp getReservationStartTime() {
+        return reservationStartTime;
+    }
+
+    public void setReservationStartTime(Timestamp reservationStartTime) {
+        this.reservationStartTime = reservationStartTime;
+    }
+
+    public Timestamp getReservationEndTime() {
+        return reservationEndTime;
+    }
+
+    public void setReservationEndTime(Timestamp reservationEndTime) {
+        this.reservationEndTime = reservationEndTime;
+    }
+
+    @Override
+    public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_COMPUTE_RESOURCE_PREFERENCE);
+            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID));
+            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.get(UserComputeResourcePreferenceConstants.USER_ID));
+
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public AppCatalogResource get(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_COMPUTE_RESOURCE_PREFERENCE);
+            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID));
+            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.get(UserComputeResourcePreferenceConstants.USER_ID));
+            Query q = generator.selectQuery(em);
+            UserComputeResourcePreference preference = (UserComputeResourcePreference) q.getSingleResult();
+            UserComputeHostPreferenceResource preferenceResource =
+                    (UserComputeHostPreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_COMPUTE_RESOURCE_PREFERENCE, preference);
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return preferenceResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException {
+        List<AppCatalogResource> preferenceResourceList = new ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_COMPUTE_RESOURCE_PREFERENCE);
+            List results;
+            if (fieldName.equals(UserComputeResourcePreferenceConstants.RESOURCE_ID)) {
+                generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserComputeResourcePreference preference = (UserComputeResourcePreference) result;
+                        if (preference.getComputeHostResource()!=null) {
+							UserComputeHostPreferenceResource preferenceResource = (UserComputeHostPreferenceResource) AppCatalogJPAUtils
+									.getResource(
+											AppCatalogResourceType.USER_COMPUTE_RESOURCE_PREFERENCE,
+											preference);
+							preferenceResourceList.add(preferenceResource);
+						}
+                    }
+                }
+            } else if (fieldName.equals(UserComputeResourcePreferenceConstants.USER_ID)) {
+                generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserComputeResourcePreference preference = (UserComputeResourcePreference) result;
+                        if (preference.getComputeHostResource()!=null) {
+	                        UserComputeHostPreferenceResource preferenceResource =
+	                                (UserComputeHostPreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_COMPUTE_RESOURCE_PREFERENCE, preference);
+	                        preferenceResourceList.add(preferenceResource);
+                        }
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                if (em.isOpen()) {
+                    if (em.getTransaction().isActive()){
+                        em.getTransaction().rollback();
+                    }
+                    em.close();
+                }
+                logger.error("Unsupported field name for Compute host preference Resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for Compute host preference Resource.");
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return preferenceResourceList;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getIds(String fieldName, Object value) throws AppCatalogException {
+        logger.error("Unsupported for objects with a composite identifier");
+        throw new AppCatalogException("Unsupported for objects with a composite identifier");
+    }
+
+    @Override
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserComputeResourcePreference existingPreference = em.find(UserComputeResourcePreference.class, new UserComputeResourcePreferencePK(userId, gatewayId, resourceId));
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            ComputeResource computeResource = em.find(ComputeResource.class, resourceId);
+            UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, userId);
+            if (existingPreference != null) {
+                existingPreference.setResourceId(resourceId);
+                existingPreference.setGatewayId(userId);
+                existingPreference.setGatewayId(gatewayId);
+                existingPreference.setComputeHostResource(computeResource);
+                existingPreference.setUserResouceProfile(userResourceProfile);
+                existingPreference.setScratchLocation(scratchLocation);
+                existingPreference.setProjectNumber(projectNumber);
+                existingPreference.setBatchQueue(batchQueue);
+                existingPreference.setLoginUserName(loginUserName);
+                existingPreference.setComputeResourceCSToken(resourceCSToken);
+                existingPreference.setQualityOfService(qualityOfService);
+                existingPreference.setReservation(reservation);
+                existingPreference.setReservationStartTime(reservationStartTime);
+                existingPreference.setReservationEndTime(reservationEndTime);
+                em.merge(existingPreference);
+            } else {
+                UserComputeResourcePreference resourcePreference = new UserComputeResourcePreference();
+                resourcePreference.setResourceId(resourceId);
+                resourcePreference.setGatewayId(gatewayId);
+                resourcePreference.setGatewayId(userId);
+                resourcePreference.setComputeHostResource(computeResource);
+                resourcePreference.setScratchLocation(scratchLocation);
+                resourcePreference.setProjectNumber(projectNumber);
+                resourcePreference.setBatchQueue(batchQueue);
+                resourcePreference.setLoginUserName(loginUserName);
+                resourcePreference.setComputeResourceCSToken(resourceCSToken);
+                resourcePreference.setQualityOfService(qualityOfService);
+                resourcePreference.setReservation(reservation);
+                resourcePreference.setReservationStartTime(reservationStartTime);
+                resourcePreference.setReservationEndTime(reservationEndTime);
+                em.persist(resourcePreference);
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserComputeResourcePreference existingPreference = em.find(UserComputeResourcePreference.class,
+                    new UserComputeResourcePreferencePK(ids.get(UserComputeResourcePreferenceConstants.USER_ID),
+                            ids.get(UserComputeResourcePreferenceConstants.GATEWAY_ID),
+                            ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID)));
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return existingPreference != null;
+        }catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
new file mode 100644
index 0000000..208c835
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
@@ -0,0 +1,425 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.airavata.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class UserResourceProfileResource extends AppCatAbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(UserResourceProfileResource.class);
+
+    private String userId;
+    private String gatewayID;
+    private Timestamp createdTime;
+    private Timestamp updatedTime;
+    private String credentialStoreToken;
+    private String identityServerTenant;
+    private String identityServerPwdCredToken;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getGatewayID() {
+        return gatewayID;
+    }
+
+    public void setGatewayID(String gatewayID) {
+        this.gatewayID = gatewayID;
+    }
+
+    public Timestamp getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Timestamp createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Timestamp getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Timestamp updatedTime) {
+        this.updatedTime = updatedTime;
+    }
+
+    public String getCredentialStoreToken() {
+        return credentialStoreToken;
+    }
+
+    public void setCredentialStoreToken(String credentialStoreToken) {
+        this.credentialStoreToken = credentialStoreToken;
+    }
+
+    public String getIdentityServerTenant() {
+        return identityServerTenant;
+    }
+
+    public void setIdentityServerTenant(String identityServerTenant) {
+        this.identityServerTenant = identityServerTenant;
+    }
+
+    public String getIdentityServerPwdCredToken() {
+        return identityServerPwdCredToken;
+    }
+
+    public void setIdentityServerPwdCredToken(String identityServerPwdCredToken) {
+        this.identityServerPwdCredToken = identityServerPwdCredToken;
+    }
+
+    public void remove(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            generator.setParameter(UserResourceProfileConstants.GATEWAY_ID, identifier);
+            generator.setParameter(UserResourceProfileConstants.USER_ID, identifier);
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public AppCatalogResource get(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            generator.setParameter(UserResourceProfileConstants.USER_ID, identifier);
+            Query q = generator.selectQuery(em);
+            UserResourceProfile userResourceProfile = (UserResourceProfile) q.getSingleResult();
+            UserResourceProfileResource userResourceProfileResource =
+                    (UserResourceProfileResource) AppCatalogJPAUtils.getResource(
+                            AppCatalogResourceType.USER_RESOURCE_PROFILE, userResourceProfile);
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return userResourceProfileResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public List<AppCatalogResource> get(String userId, Object value) throws AppCatalogException {
+        List<AppCatalogResource> userResourceProfileResources = new ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        HashMap<String, String> ids;
+        if (value instanceof Map) {
+            ids = (HashMap) value;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            List results;
+            if (userId.equals(UserResourceProfileConstants.USER_ID)) {
+                generator.setParameter(UserResourceProfileConstants.USER_ID, ids.get(UserResourceProfileConstants.USER_ID));
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserResourceProfile userResourceProfile = (UserResourceProfile) result;
+                        UserResourceProfileResource userResourceProfileResource =
+                                (UserResourceProfileResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_RESOURCE_PROFILE, userResourceProfile);
+                        userResourceProfileResources.add(userResourceProfileResource);
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                if (em.isOpen()) {
+                    if (em.getTransaction().isActive()){
+                        em.getTransaction().rollback();
+                    }
+                    em.close();
+                }
+                logger.error("Unsupported field name for User Resource Profile resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for User Resource Profile resource.");
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return userResourceProfileResources;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        List<AppCatalogResource> resourceList = new ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            Query q = generator.selectQuery(em);
+            List results = q.getResultList();
+            if (results.size() != 0) {
+                for (Object result : results) {
+                    UserResourceProfile userResourceProfile = (UserResourceProfile) result;
+                    UserResourceProfileResource userResourceProfileResource =
+                            (UserResourceProfileResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_RESOURCE_PROFILE, userResourceProfile);
+                    resourceList.add(userResourceProfileResource);
+                }
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return resourceList;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    public List<String> getIds(String userId, Object value) throws AppCatalogException {
+        List<String> userResourceProfileResourceIDs = new ArrayList<String>();
+        EntityManager em = null;
+        HashMap<String, String> ids;
+        if (value instanceof Map) {
+            ids = (HashMap) value;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            List results;
+            if (userId.equals(UserResourceProfileConstants.USER_ID)) {
+                generator.setParameter(UserResourceProfileConstants.USER_ID, ids.get(UserResourceProfileConstants.USER_ID));
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserResourceProfile userResourceProfile = (UserResourceProfile) result;
+                        userResourceProfileResourceIDs.add(userResourceProfile.getUserID());
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                if (em.isOpen()) {
+                    if (em.getTransaction().isActive()){
+                        em.getTransaction().rollback();
+                    }
+                    em.close();
+                }
+                logger.error("Unsupported field name for User Resource Profile resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for User Resource Profile resource.");
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return userResourceProfileResourceIDs;
+    }
+
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserResourceProfile existingUserResourceProfile = em.find(UserResourceProfile.class, userId);
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            if (existingUserResourceProfile != null) {
+                existingUserResourceProfile.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+                if (credentialStoreToken != null){
+                    existingUserResourceProfile.setCredentialStoreToken(credentialStoreToken);
+                }
+                if (identityServerTenant != null){
+                    existingUserResourceProfile.setIdentityServerTenant(identityServerTenant);
+                }
+                if (identityServerPwdCredToken != null){
+                    existingUserResourceProfile.setIdentityServerPwdCredToken(identityServerPwdCredToken);
+                }
+                em.merge(existingUserResourceProfile);
+            } else {
+                UserResourceProfile userResourceProfile = new UserResourceProfile();
+                userResourceProfile.setGatewayID(gatewayID);
+                userResourceProfile.setGatewayID(userId);
+                userResourceProfile.setCreationTime(AiravataUtils.getCurrentTimestamp());
+                if (credentialStoreToken != null){
+                    userResourceProfile.setCredentialStoreToken(credentialStoreToken);
+                }
+                if (identityServerTenant != null){
+                    userResourceProfile.setIdentityServerTenant(identityServerTenant);
+                }
+                if (identityServerPwdCredToken != null){
+                    userResourceProfile.setIdentityServerPwdCredToken(identityServerPwdCredToken);
+                }
+                em.persist(userResourceProfile);
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        EntityManager em = null;
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, ids.get(UserResourceProfileConstants.USER_ID));
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return userResourceProfile != null;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
new file mode 100644
index 0000000..37dadc6
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
@@ -0,0 +1,371 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.registry.core.app.catalog.resources;
+
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile;
+import org.apache.airavata.registry.core.app.catalog.model.UserStoragePreference;
+import org.apache.airavata.registry.core.app.catalog.model.UserStoragePreferencePK;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
+import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class UserStoragePreferenceResource extends AppCatAbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(UserStoragePreferenceResource.class);
+    private String gatewayId;
+    private String userId;
+    private String storageResourceId;
+    private String loginUserName;
+    private String fsRootLocation;
+    private String resourceCSToken;
+
+
+    private UserResourceProfileResource userResourceProfileResource;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getLoginUserName() {
+        return loginUserName;
+    }
+
+    public void setLoginUserName(String loginUserName) {
+        this.loginUserName = loginUserName;
+    }
+
+    public String getGatewayId() {
+        return gatewayId;
+    }
+
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId = gatewayId;
+    }
+
+    public UserResourceProfileResource getUserResourceProfileResource() {
+        return userResourceProfileResource;
+    }
+
+    public void setUserResourceProfileResource(UserResourceProfileResource userResourceProfileResource) {
+        this.userResourceProfileResource = userResourceProfileResource;
+    }
+
+    public String getResourceCSToken() {
+        return resourceCSToken;
+    }
+
+    public void setResourceCSToken(String resourceCSToken) {
+        this.resourceCSToken = resourceCSToken;
+    }
+
+    public String getFsRootLocation() {
+        return fsRootLocation;
+    }
+
+    public void setFsRootLocation(String fsRootLocation) {
+        this.fsRootLocation = fsRootLocation;
+    }
+
+    public String getStorageResourceId() {
+        return storageResourceId;
+    }
+
+    public void setStorageResourceId(String storageResourceId) {
+        this.storageResourceId = storageResourceId;
+    }
+
+    @Override
+    public void remove(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_STORAGE_PREFERENCE);
+            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.get(UserStoragePreferenceConstants.STORAGE_ID));
+            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.get(UserStoragePreferenceConstants.USER_ID));
+
+            Query q = generator.deleteQuery(em);
+            q.executeUpdate();
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public AppCatalogResource get(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_STORAGE_PREFERENCE);
+            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.get(UserStoragePreferenceConstants.USER_ID));
+            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.get(UserStoragePreferenceConstants.STORAGE_ID));
+            Query q = generator.selectQuery(em);
+            UserStoragePreference preference = (UserStoragePreference) q.getSingleResult();
+            UserStoragePreferenceResource preferenceResource =
+                    (UserStoragePreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_STORAGE_PREFERENCE, preference);
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return preferenceResource;
+        } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException {
+        List<AppCatalogResource> preferenceResourceList = new ArrayList<AppCatalogResource>();
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_STORAGE_PREFERENCE);
+            List results;
+            if (fieldName.equals(UserStoragePreferenceConstants.STORAGE_ID)) {
+                generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserStoragePreference preference = (UserStoragePreference) result;
+                        if (preference.getStorageResourceId()!=null) {
+							UserStoragePreferenceResource preferenceResource = (UserStoragePreferenceResource) AppCatalogJPAUtils
+									.getResource(
+											AppCatalogResourceType.USER_STORAGE_PREFERENCE,
+											preference);
+							preferenceResourceList.add(preferenceResource);
+						}
+                    }
+                }
+            } else if (fieldName.equals(UserStoragePreferenceConstants.USER_ID)) {
+                generator.setParameter(UserStoragePreferenceConstants.USER_ID, value);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        UserStoragePreference preference = (UserStoragePreference) result;
+                        if (preference.getStorageResourceId()!=null) {
+	                        UserStoragePreferenceResource preferenceResource =
+	                                (UserStoragePreferenceResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.USER_STORAGE_PREFERENCE, preference);
+	                        preferenceResourceList.add(preferenceResource);
+                        }
+                    }
+                }
+            } else {
+                em.getTransaction().commit();
+                if (em.isOpen()) {
+                    if (em.getTransaction().isActive()){
+                        em.getTransaction().rollback();
+                    }
+                    em.close();
+                }
+                logger.error("Unsupported field name for data storage preference Resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported field name for data storage preference Resource.");
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+        return preferenceResourceList;
+    }
+
+    @Override
+    public List<AppCatalogResource> getAll() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getAllIds() throws AppCatalogException {
+        return null;
+    }
+
+    @Override
+    public List<String> getIds(String fieldName, Object value) throws AppCatalogException {
+        logger.error("Unsupported for objects with a composite identifier");
+        throw new AppCatalogException("Unsupported for objects with a composite identifier");
+    }
+
+    @Override
+    public void save() throws AppCatalogException {
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserStoragePreference existingPreference = em.find(UserStoragePreference.class, new UserStoragePreferencePK(userId, storageResourceId));
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+
+            em = AppCatalogJPAUtils.getEntityManager();
+            em.getTransaction().begin();
+            UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, userId);
+            if (existingPreference != null) {
+                existingPreference.setStorageResourceId(storageResourceId);
+                existingPreference.setGatewayId(userId);
+                existingPreference.setGatewayId(gatewayId);
+                existingPreference.setUserResourceProfile(userResourceProfile);
+                existingPreference.setLoginUserName(loginUserName);
+                existingPreference.setComputeResourceCSToken(resourceCSToken);
+                existingPreference.setFsRootLocation(fsRootLocation);
+                em.merge(existingPreference);
+            } else {
+                UserStoragePreference resourcePreference = new UserStoragePreference();
+                resourcePreference.setStorageResourceId(storageResourceId);
+                resourcePreference.setGatewayId(gatewayId);
+                resourcePreference.setGatewayId(userId);
+                resourcePreference.setUserResourceProfile(userResourceProfile);
+                resourcePreference.setLoginUserName(loginUserName);
+                resourcePreference.setComputeResourceCSToken(resourceCSToken);
+                resourcePreference.setFsRootLocation(fsRootLocation);
+                em.persist(resourcePreference);
+            }
+            em.getTransaction().commit();
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+
+    @Override
+    public boolean isExists(Object identifier) throws AppCatalogException {
+        HashMap<String, String> ids;
+        if (identifier instanceof Map) {
+            ids = (HashMap) identifier;
+        } else {
+            logger.error("Identifier should be a map with the field name and it's value");
+            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+        }
+
+        EntityManager em = null;
+        try {
+            em = AppCatalogJPAUtils.getEntityManager();
+            UserStoragePreference existingPreference = em.find(UserStoragePreference.class,
+                    new UserStoragePreferencePK(ids.get(UserStoragePreferenceConstants.USER_ID),
+                            ids.get(UserStoragePreferenceConstants.STORAGE_ID)));
+            if (em.isOpen()) {
+                if (em.getTransaction().isActive()){
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+            return existingPreference != null;
+        }catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            throw new AppCatalogException(e);
+        } finally {
+            if (em != null && em.isOpen()) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogResourceType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogResourceType.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogResourceType.java
index b26560a..ddad27d 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogResourceType.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogResourceType.java
@@ -49,8 +49,11 @@ public enum AppCatalogResourceType {
     APPLICATION_INPUT,
     APPLICATION_OUTPUT,
     GATEWAY_PROFILE,
+    USER_RESOURCE_PROFILE,
     COMPUTE_RESOURCE_PREFERENCE,
+    USER_COMPUTE_RESOURCE_PREFERENCE,
     STORAGE_PREFERENCE,
+    USER_STORAGE_PREFERENCE,
     STORAGE_RESOURCE,
     STORAGE_INTERFACE,
 	BATCH_QUEUE,

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
index 8b40d62..3d86635 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogThriftConversion.java
@@ -31,6 +31,9 @@ import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePrefer
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
 import org.apache.airavata.model.application.io.DataType;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
@@ -844,6 +847,26 @@ public class AppCatalogThriftConversion {
         return preference;
     }
 
+    public static UserComputeResourcePreference getUserComputeResourcePreference (UserComputeHostPreferenceResource resource){
+        UserComputeResourcePreference preference = new UserComputeResourcePreference();
+        preference.setComputeResourceId(resource.getResourceId());
+        preference.setPreferredBatchQueue(resource.getBatchQueue());
+        preference.setScratchLocation(resource.getScratchLocation());
+        preference.setAllocationProjectNumber(resource.getProjectNumber());
+        preference.setLoginUserName(resource.getLoginUserName());
+        preference.setResourceSpecificCredentialStoreToken(resource.getResourceCSToken());
+        preference.setQualityOfService(resource.getQualityOfService());
+        preference.setReservation(resource.getReservation());
+        if (resource.getReservationStartTime() != null) {
+            preference.setReservationStartTime(resource.getReservationStartTime().getTime());
+        }
+
+        if (resource.getReservationEndTime() != null) {
+            preference.setReservationEndTime(resource.getReservationEndTime().getTime());
+        }
+        return preference;
+    }
+
     public static List<ComputeResourcePreference> getComputeResourcePreferences (List<AppCatalogResource> resources){
         List<ComputeResourcePreference> preferences = new ArrayList<ComputeResourcePreference>();
         if (resources != null && !resources.isEmpty()){
@@ -854,6 +877,16 @@ public class AppCatalogThriftConversion {
         return preferences;
     }
 
+    public static List<UserComputeResourcePreference> getUserComputeResourcePreferences (List<AppCatalogResource> resources){
+        List<UserComputeResourcePreference> preferences = new ArrayList<UserComputeResourcePreference>();
+        if (resources != null && !resources.isEmpty()){
+            for (AppCatalogResource resource : resources){
+                preferences.add(getUserComputeResourcePreference((UserComputeHostPreferenceResource)resource));
+            }
+        }
+        return preferences;
+    }
+
     public static StoragePreference getDataStoragePreference (StoragePreferenceResource resource){
         StoragePreference preference = new StoragePreference();
         preference.setStorageResourceId(resource.getStorageResourceId());
@@ -872,6 +905,24 @@ public class AppCatalogThriftConversion {
         }
         return preferences;
     }
+    public static UserStoragePreference getUserDataStoragePreference (UserStoragePreferenceResource resource){
+        UserStoragePreference preference = new UserStoragePreference();
+        preference.setStorageResourceId(resource.getStorageResourceId());
+        preference.setFileSystemRootLocation(resource.getFsRootLocation());
+        preference.setLoginUserName(resource.getLoginUserName());
+        preference.setResourceSpecificCredentialStoreToken(resource.getResourceCSToken());
+        return preference;
+    }
+
+    public static List<UserStoragePreference> getUserDataStoragePreferences (List<AppCatalogResource> resources){
+        List<UserStoragePreference> preferences = new ArrayList<UserStoragePreference>();
+        if (resources != null && !resources.isEmpty()){
+            for (AppCatalogResource resource : resources){
+                preferences.add(getUserDataStoragePreference((UserStoragePreferenceResource)resource));
+            }
+        }
+        return preferences;
+    }
 
     public static GatewayResourceProfile getGatewayResourceProfile(GatewayProfileResource gw, List<ComputeResourcePreference> preferences, List<StoragePreference> storagePreferences){
         GatewayResourceProfile gatewayProfile = new GatewayResourceProfile();
@@ -884,4 +935,16 @@ public class AppCatalogThriftConversion {
         return gatewayProfile;
     }
 
+    public static UserResourceProfile getUserResourceProfile(UserResourceProfileResource gw, List<UserComputeResourcePreference> preferences, List<UserStoragePreference> storagePreferences){
+        UserResourceProfile userResourceProfile = new UserResourceProfile();
+        userResourceProfile.setGatewayID(gw.getGatewayID());
+        userResourceProfile.setUserId(gw.getUserId());
+        userResourceProfile.setCredentialStoreToken(gw.getCredentialStoreToken());
+        userResourceProfile.setIdentityServerTenant(gw.getIdentityServerTenant());
+        userResourceProfile.setIdentityServerPwdCredToken(gw.getIdentityServerPwdCredToken());
+        userResourceProfile.setUserComputeResourcePreferences(preferences);
+        userResourceProfile.setUserStoragePreferences(storagePreferences);
+        return userResourceProfile;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/AppCatalog.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/AppCatalog.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/AppCatalog.java
index 0f7c2c9..f00a2df 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/AppCatalog.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/AppCatalog.java
@@ -52,6 +52,13 @@ public interface AppCatalog {
     GwyResourceProfile getGatewayProfile() throws AppCatalogException;
 
     /**
+     * Get Gateway profile interface
+     * @return User Resource profile interface
+     * @throws AppCatalogException
+     */
+    UsrResourceProfile getUserResourceProfile() throws AppCatalogException;
+
+    /**
      * Get workflow catalog interface
      * @return workflow catalog interface
      * @throws AppCatalogException

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
new file mode 100644
index 0000000..ec04c7b
--- /dev/null
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/UsrResourceProfile.java
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.airavata.registry.cpi;
+
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import java.util.List;
+
+public interface UsrResourceProfile {
+    /**
+     * This method will add a gateway profile
+     * @param userResourceProfile object of User resource profile
+     * @return gateway id
+     */
+    String addUserResourceProfile(UserResourceProfile userResourceProfile) throws AppCatalogException;
+
+    /**
+     * This method will update a gateway profile
+     * @param userId unique User id
+     * @param gatewayId unique gateway id
+     * @param updatedProfile updated profile
+     */
+    void updateUserResourceProfile(String userId, String gatewayId, UserResourceProfile updatedProfile) throws AppCatalogException;
+
+    /**
+     * @param userId
+     * @param gatewayId
+     * @return
+     */
+    UserResourceProfile getUserResourceProfile(String userId, String gatewayId) throws AppCatalogException;
+
+    /**
+     * This method will remove a gateway profile
+     * @param userId
+     * @param gatewayId unique gateway id
+     * @return true or false
+     */
+    boolean removeUserResourceProfile(String userId, String gatewayId) throws AppCatalogException;
+    boolean removeUserComputeResourcePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException;
+    boolean removeUserDataStoragePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException;
+
+    /**
+     * This method will check whether gateway profile exists
+     * @param userId
+     * @param gatewayId unique gateway id
+     * @return true or false
+     */
+    boolean isUserResourceProfileExists(String userId, String gatewayId) throws AppCatalogException;
+
+    /**
+     *
+     * @param userId
+     * @param gatewayId
+     * @param hostId
+     * @return ComputeResourcePreference
+     */
+    UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayId, String hostId) throws AppCatalogException;
+    UserStoragePreference getUserStoragePreference(String userId, String gatewayId, String storageId) throws AppCatalogException;
+
+
+    List<String> getGatewayProfileIds(String gatewayName) throws AppCatalogException;
+
+    /* Implementing this method is critical to validate User Resource Profile
+     *
+     */
+    String getUserNamefromID(String userId, String gatewayID) throws AppCatalogException;
+
+    List<UserResourceProfile> getAllUserResourceProfiles() throws AppCatalogException;
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index 3ca024c..c26380d 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -3262,7 +3262,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
             throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
         }
         try {
-            if (!ExpCatResourceUtils.isUserExist(userName, gatewayId)){
+                if (!ExpCatResourceUtils.isUserExist(userName, gatewayId)){
                 logger.error("User does not exist in the system. Please provide a valid user..");
                 AiravataSystemException exception = new AiravataSystemException();
                 exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);


[31/31] airavata git commit: adding final changes

Posted by sh...@apache.org.
adding final changes


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

Branch: refs/heads/develop
Commit: 50cf71e44431e1dce3653df25790443d4a77ec0f
Parents: fa5a1e0
Author: Anuj Bhandar <bh...@gmail.com>
Authored: Fri Oct 7 16:29:10 2016 -0400
Committer: Anuj Bhandar <bh...@gmail.com>
Committed: Fri Oct 7 16:29:10 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |  2 +-
 .../apache/airavata/model/ComponentStatus.java  |  2 +-
 .../org/apache/airavata/model/EdgeModel.java    |  2 +-
 .../org/apache/airavata/model/NodeModel.java    |  2 +-
 .../org/apache/airavata/model/PortModel.java    |  2 +-
 .../apache/airavata/model/WorkflowModel.java    |  2 +-
 .../apache/airavata/model/WorkflowStatus.java   |  2 +-
 .../ApplicationDeploymentDescription.java       |  2 +-
 .../appdeployment/ApplicationModule.java        |  2 +-
 .../appcatalog/appdeployment/CommandObject.java |  2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |  2 +-
 .../ApplicationInterfaceDescription.java        |  2 +-
 .../appcatalog/computeresource/BatchQueue.java  |  2 +-
 .../computeresource/CloudJobSubmission.java     |  2 +-
 .../ComputeResourceDescription.java             |  2 +-
 .../computeresource/GlobusJobSubmission.java    |  2 +-
 .../computeresource/JobSubmissionInterface.java |  2 +-
 .../computeresource/LOCALSubmission.java        |  2 +-
 .../computeresource/ResourceJobManager.java     |  2 +-
 .../computeresource/SSHJobSubmission.java       |  2 +-
 .../computeresource/UnicoreJobSubmission.java   |  2 +-
 .../ComputeResourcePreference.java              |  2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |  2 +-
 .../gatewayprofile/StoragePreference.java       |  2 +-
 .../StorageResourceDescription.java             |  2 +-
 .../UserComputeResourcePreference.java          |  2 +-
 .../UserResourceProfile.java                    |  2 +-
 .../UserStoragePreference.java                  |  2 +-
 .../application/io/InputDataObjectType.java     |  2 +-
 .../application/io/OutputDataObjectType.java    |  2 +-
 .../airavata/model/commons/ErrorModel.java      |  2 +-
 .../model/commons/ValidationResults.java        |  2 +-
 .../airavata/model/commons/ValidatorResult.java |  2 +-
 .../data/movement/DataMovementInterface.java    |  2 +-
 .../data/movement/GridFTPDataMovement.java      |  2 +-
 .../model/data/movement/LOCALDataMovement.java  |  2 +-
 .../model/data/movement/SCPDataMovement.java    |  2 +-
 .../data/movement/UnicoreDataMovement.java      |  2 +-
 .../model/data/replica/DataProductModel.java    |  2 +-
 .../data/replica/DataReplicaLocationModel.java  |  2 +-
 .../model/error/AiravataClientException.java    |  2 +-
 .../model/error/AiravataSystemException.java    |  2 +-
 .../model/error/AuthenticationException.java    |  2 +-
 .../model/error/AuthorizationException.java     |  2 +-
 .../error/ExperimentNotFoundException.java      |  2 +-
 .../model/error/InvalidRequestException.java    |  2 +-
 .../model/error/LaunchValidationException.java  |  2 +-
 .../model/error/ProjectNotFoundException.java   |  2 +-
 .../airavata/model/error/TimedOutException.java |  2 +-
 .../airavata/model/error/ValidationResults.java |  2 +-
 .../airavata/model/error/ValidatorResult.java   |  2 +-
 .../model/experiment/ExperimentModel.java       |  2 +-
 .../model/experiment/ExperimentStatistics.java  |  2 +-
 .../experiment/ExperimentSummaryModel.java      |  2 +-
 .../experiment/UserConfigurationDataModel.java  |  2 +-
 .../apache/airavata/model/group/GroupModel.java |  2 +-
 .../org/apache/airavata/model/job/JobModel.java |  2 +-
 .../event/ExperimentStatusChangeEvent.java      |  2 +-
 .../messaging/event/ExperimentSubmitEvent.java  |  2 +-
 .../model/messaging/event/JobIdentifier.java    |  2 +-
 .../messaging/event/JobStatusChangeEvent.java   |  2 +-
 .../event/JobStatusChangeRequestEvent.java      |  2 +-
 .../airavata/model/messaging/event/Message.java |  2 +-
 .../messaging/event/ProcessIdentifier.java      |  2 +-
 .../event/ProcessStatusChangeEvent.java         |  2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |  2 +-
 .../messaging/event/ProcessSubmitEvent.java     |  2 +-
 .../messaging/event/ProcessTerminateEvent.java  |  2 +-
 .../model/messaging/event/TaskIdentifier.java   |  2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |  2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |  2 +-
 .../event/TaskStatusChangeRequestEvent.java     |  2 +-
 .../airavata/model/process/ProcessModel.java    |  2 +-
 .../ComputationalResourceSchedulingModel.java   |  2 +-
 .../airavata/model/security/AuthzToken.java     |  2 +-
 .../airavata/model/status/ExperimentStatus.java |  2 +-
 .../apache/airavata/model/status/JobStatus.java |  2 +-
 .../airavata/model/status/ProcessStatus.java    |  2 +-
 .../airavata/model/status/TaskStatus.java       |  2 +-
 .../model/task/DataStagingTaskModel.java        |  2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |  2 +-
 .../model/task/JobSubmissionTaskModel.java      |  2 +-
 .../airavata/model/task/MonitorTaskModel.java   |  2 +-
 .../apache/airavata/model/task/TaskModel.java   |  2 +-
 .../airavata/model/user/NSFDemographics.java    |  2 +-
 .../apache/airavata/model/user/UserProfile.java |  2 +-
 .../airavata/model/workspace/Gateway.java       | 27 ++++----------------
 .../apache/airavata/model/workspace/Group.java  |  2 +-
 .../airavata/model/workspace/Notification.java  |  2 +-
 .../airavata/model/workspace/Project.java       |  2 +-
 .../apache/airavata/model/workspace/User.java   |  2 +-
 .../resources/AppCatAbstractResource.java       |  8 +++---
 .../resources/UserResourceProfileResource.java  |  2 +-
 .../app/catalog/UserResourceProfileTest.java    |  8 +++---
 94 files changed, 104 insertions(+), 121 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index f5700cd..a6626eb 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Airavata {
 
   public interface Iface {

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 7ce8d30..4da27d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 0794855..949692b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index 4983a61..ea24faa 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index c23baa6..54b3391 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index 9c8f1aa..ba6569c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index 9a33712..deadf51 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 12fa1c5..63e3882 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *  assigns to the environment variable "NAME" the value
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index d00ce8c..f574e9a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  *    Descriprion of the Module
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index 32b5b09..45df73d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * commandOrder:
  *   Order of the command in the multiple command situation
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index a750bba..392cc9e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@ -63,7 +63,7 @@ import org.slf4j.LoggerFactory;
  * envPathOrder:
  *   The order of the setting of the env variables when there are multiple env variables
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index 82c2c3e..e832256 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   Outputs generated from the application
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 22c9222..d888905 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * maxRunTime:
  *  Maximum allowed run time in hours.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index c2cf1e0..7d540de 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index f52bd08..c1dd4f9 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@ -80,7 +80,7 @@ import org.slf4j.LoggerFactory;
  *  Map of file systems type and the path.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index bc81a02..70b7644 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index c2b9e63..b83cc4e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index bea1578..6a08e19 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index 068e601..bca1b6f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  An enumeration of commonly used manager commands.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index c6345e7..8a9007a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  *    the same. Example: *@*.example.com or *@example.com
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index bd506bf..1d367fb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@ -59,7 +59,7 @@ import org.slf4j.LoggerFactory;
  * authenticationMode
  *  The authenticationMode defines the way certificate is fetched.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index 8d7812c..b1c092b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -85,7 +85,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 9be1c5e..31f33f6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  *  identityServerPwdCredToken:
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index 50040ca..9c274d6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index c6f7b85..1499cd8 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@ -68,7 +68,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
index 399083b..276b7ca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
@@ -78,7 +78,7 @@ import org.slf4j.LoggerFactory;
  *   default credential store.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UserComputeResourcePreference implements org.apache.thrift.TBase<UserComputeResourcePreference, UserComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserComputeResourcePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserComputeResourcePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
index bbd6188..bab4802 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserResourceProfile.java
@@ -71,7 +71,7 @@ import org.slf4j.LoggerFactory;
  *  identityServerPwdCredToken:
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UserResourceProfile implements org.apache.thrift.TBase<UserResourceProfile, UserResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserResourceProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserResourceProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
index ba23b81..daa5df2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserStoragePreference.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UserStoragePreference implements org.apache.thrift.TBase<UserStoragePreference, UserStoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserStoragePreference> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserStoragePreference");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
index 8f23300..620b937 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/InputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class InputDataObjectType implements org.apache.thrift.TBase<InputDataObjectType, InputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<InputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
index 7684d5d..19df1e3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/application/io/OutputDataObjectType.java
@@ -77,7 +77,7 @@ import org.slf4j.LoggerFactory;
  *   Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class OutputDataObjectType implements org.apache.thrift.TBase<OutputDataObjectType, OutputDataObjectType._Fields>, java.io.Serializable, Cloneable, Comparable<OutputDataObjectType> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OutputDataObjectType");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
index 5a36d87..2adadf4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ErrorModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ErrorModel implements org.apache.thrift.TBase<ErrorModel, ErrorModel._Fields>, java.io.Serializable, Cloneable, Comparable<ErrorModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ErrorModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
index 6a2c454..154f28c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
index f611560..1ef9ee3 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/commons/ValidatorResult.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * during the experiment launch operation
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
index 6c04333..b9678e0 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/DataMovementInterface.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  *   Lower the numerical number, higher the priority
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class DataMovementInterface implements org.apache.thrift.TBase<DataMovementInterface, DataMovementInterface._Fields>, java.io.Serializable, Cloneable, Comparable<DataMovementInterface> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataMovementInterface");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
index b2e0fc0..9e586ce 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/GridFTPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class GridFTPDataMovement implements org.apache.thrift.TBase<GridFTPDataMovement, GridFTPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<GridFTPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GridFTPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
index 2a63d72..3db57a7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/LOCALDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-defualt port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class LOCALDataMovement implements org.apache.thrift.TBase<LOCALDataMovement, LOCALDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
index 04c1849..31c4ddb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/SCPDataMovement.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * sshPort:
  *  If a non-default port needs to used, specify it.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class SCPDataMovement implements org.apache.thrift.TBase<SCPDataMovement, SCPDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<SCPDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SCPDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
index 713979b..8d54c40 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/movement/UnicoreDataMovement.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * unicoreEndPointURL:
  *  unicoreGateway End Point. The provider will query this service to fetch required service end points.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UnicoreDataMovement implements org.apache.thrift.TBase<UnicoreDataMovement, UnicoreDataMovement._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreDataMovement> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreDataMovement");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
index c4d2d65..c557385 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
index 47c6d3a..6442791 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index e51345b..dfc6630 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@ -66,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * parameter:  If the error applied to a particular input parameter, this will
  *   indicate which parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index e517a31..feb658c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
  * message:  This may contain additional information about the error
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index ec706df..8d45a52 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the cause of the authorization failure.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index 2784b34..bc27ae6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the authorization failure message
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index 6f84da3..517ee3b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
  * 
  * key:  The value passed from the client in the identifier, which was not found.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index d9a2afb..f909497 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@ -57,7 +57,7 @@ import org.slf4j.LoggerFactory;
  * 
  *  message: contains the associated error message.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index 6d226ef..f6a7019 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index b394402..a81da69 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 2:  optional  string key
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index c4bc47b..b192ab6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This exception is thrown when RPC timeout gets exceeded.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index dde0324..9baedd4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index 90e0d0a..e3de8dc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index 0aa3153..7b01741 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
  * experimentDescription:
  *    The verbose description of the experiment. This is an optional parameter.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 5bbc759..03aa46a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 243598f..62a568b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index d1940ac..0ef0963 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
index 37acb88..4db9ae4 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupModel._Fields>, java.io.Serializable, Cloneable, Comparable<GroupModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GroupModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 30e0e7d..9553b0c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index bdbe5c9..2223a90 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
index f6de267..7ec7315 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentSubmitEvent implements org.apache.thrift.TBase<ExperimentSubmitEvent, ExperimentSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index 1ea3d53..b8e6d14 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index 5478c2b..046cb14 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
 


[16/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.h
new file mode 100644
index 0000000..683ab14
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/user_resource_profile_model_types.h
@@ -0,0 +1,321 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+#ifndef user_resource_profile_model_TYPES_H
+#define user_resource_profile_model_TYPES_H
+
+#include <iosfwd>
+
+#include <thrift/Thrift.h>
+#include <thrift/TApplicationException.h>
+#include <thrift/protocol/TProtocol.h>
+#include <thrift/transport/TTransport.h>
+
+#include <thrift/cxxfunctional.h>
+#include "compute_resource_model_types.h"
+#include "data_movement_models_types.h"
+#include "user_profile_model_types.h"
+
+
+namespace apache { namespace airavata { namespace model { namespace appcatalog { namespace userresourceprofile {
+
+class ComputeResourcePreference;
+
+class StoragePreference;
+
+class UserResourceProfile;
+
+typedef struct _ComputeResourcePreference__isset {
+  _ComputeResourcePreference__isset() : loginUserName(false), preferredBatchQueue(false), scratchLocation(false), allocationProjectNumber(false), resourceSpecificCredentialStoreToken(false), qualityOfService(false), reservation(false), reservationStartTime(false), reservationEndTime(false) {}
+  bool loginUserName :1;
+  bool preferredBatchQueue :1;
+  bool scratchLocation :1;
+  bool allocationProjectNumber :1;
+  bool resourceSpecificCredentialStoreToken :1;
+  bool qualityOfService :1;
+  bool reservation :1;
+  bool reservationStartTime :1;
+  bool reservationEndTime :1;
+} _ComputeResourcePreference__isset;
+
+class ComputeResourcePreference {
+ public:
+
+  ComputeResourcePreference(const ComputeResourcePreference&);
+  ComputeResourcePreference& operator=(const ComputeResourcePreference&);
+  ComputeResourcePreference() : computeResourceId(), loginUserName(), preferredBatchQueue(), scratchLocation(), allocationProjectNumber(), resourceSpecificCredentialStoreToken(), qualityOfService(), reservation(), reservationStartTime(0), reservationEndTime(0) {
+  }
+
+  virtual ~ComputeResourcePreference() throw();
+  std::string computeResourceId;
+  std::string loginUserName;
+  std::string preferredBatchQueue;
+  std::string scratchLocation;
+  std::string allocationProjectNumber;
+  std::string resourceSpecificCredentialStoreToken;
+  std::string qualityOfService;
+  std::string reservation;
+  int64_t reservationStartTime;
+  int64_t reservationEndTime;
+
+  _ComputeResourcePreference__isset __isset;
+
+  void __set_computeResourceId(const std::string& val);
+
+  void __set_loginUserName(const std::string& val);
+
+  void __set_preferredBatchQueue(const std::string& val);
+
+  void __set_scratchLocation(const std::string& val);
+
+  void __set_allocationProjectNumber(const std::string& val);
+
+  void __set_resourceSpecificCredentialStoreToken(const std::string& val);
+
+  void __set_qualityOfService(const std::string& val);
+
+  void __set_reservation(const std::string& val);
+
+  void __set_reservationStartTime(const int64_t val);
+
+  void __set_reservationEndTime(const int64_t val);
+
+  bool operator == (const ComputeResourcePreference & rhs) const
+  {
+    if (!(computeResourceId == rhs.computeResourceId))
+      return false;
+    if (__isset.loginUserName != rhs.__isset.loginUserName)
+      return false;
+    else if (__isset.loginUserName && !(loginUserName == rhs.loginUserName))
+      return false;
+    if (__isset.preferredBatchQueue != rhs.__isset.preferredBatchQueue)
+      return false;
+    else if (__isset.preferredBatchQueue && !(preferredBatchQueue == rhs.preferredBatchQueue))
+      return false;
+    if (__isset.scratchLocation != rhs.__isset.scratchLocation)
+      return false;
+    else if (__isset.scratchLocation && !(scratchLocation == rhs.scratchLocation))
+      return false;
+    if (__isset.allocationProjectNumber != rhs.__isset.allocationProjectNumber)
+      return false;
+    else if (__isset.allocationProjectNumber && !(allocationProjectNumber == rhs.allocationProjectNumber))
+      return false;
+    if (__isset.resourceSpecificCredentialStoreToken != rhs.__isset.resourceSpecificCredentialStoreToken)
+      return false;
+    else if (__isset.resourceSpecificCredentialStoreToken && !(resourceSpecificCredentialStoreToken == rhs.resourceSpecificCredentialStoreToken))
+      return false;
+    if (__isset.qualityOfService != rhs.__isset.qualityOfService)
+      return false;
+    else if (__isset.qualityOfService && !(qualityOfService == rhs.qualityOfService))
+      return false;
+    if (__isset.reservation != rhs.__isset.reservation)
+      return false;
+    else if (__isset.reservation && !(reservation == rhs.reservation))
+      return false;
+    if (__isset.reservationStartTime != rhs.__isset.reservationStartTime)
+      return false;
+    else if (__isset.reservationStartTime && !(reservationStartTime == rhs.reservationStartTime))
+      return false;
+    if (__isset.reservationEndTime != rhs.__isset.reservationEndTime)
+      return false;
+    else if (__isset.reservationEndTime && !(reservationEndTime == rhs.reservationEndTime))
+      return false;
+    return true;
+  }
+  bool operator != (const ComputeResourcePreference &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ComputeResourcePreference & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(ComputeResourcePreference &a, ComputeResourcePreference &b);
+
+inline std::ostream& operator<<(std::ostream& out, const ComputeResourcePreference& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+typedef struct _StoragePreference__isset {
+  _StoragePreference__isset() : loginUserName(false), fileSystemRootLocation(false), resourceSpecificCredentialStoreToken(false) {}
+  bool loginUserName :1;
+  bool fileSystemRootLocation :1;
+  bool resourceSpecificCredentialStoreToken :1;
+} _StoragePreference__isset;
+
+class StoragePreference {
+ public:
+
+  StoragePreference(const StoragePreference&);
+  StoragePreference& operator=(const StoragePreference&);
+  StoragePreference() : storageResourceId(), loginUserName(), fileSystemRootLocation(), resourceSpecificCredentialStoreToken() {
+  }
+
+  virtual ~StoragePreference() throw();
+  std::string storageResourceId;
+  std::string loginUserName;
+  std::string fileSystemRootLocation;
+  std::string resourceSpecificCredentialStoreToken;
+
+  _StoragePreference__isset __isset;
+
+  void __set_storageResourceId(const std::string& val);
+
+  void __set_loginUserName(const std::string& val);
+
+  void __set_fileSystemRootLocation(const std::string& val);
+
+  void __set_resourceSpecificCredentialStoreToken(const std::string& val);
+
+  bool operator == (const StoragePreference & rhs) const
+  {
+    if (!(storageResourceId == rhs.storageResourceId))
+      return false;
+    if (__isset.loginUserName != rhs.__isset.loginUserName)
+      return false;
+    else if (__isset.loginUserName && !(loginUserName == rhs.loginUserName))
+      return false;
+    if (__isset.fileSystemRootLocation != rhs.__isset.fileSystemRootLocation)
+      return false;
+    else if (__isset.fileSystemRootLocation && !(fileSystemRootLocation == rhs.fileSystemRootLocation))
+      return false;
+    if (__isset.resourceSpecificCredentialStoreToken != rhs.__isset.resourceSpecificCredentialStoreToken)
+      return false;
+    else if (__isset.resourceSpecificCredentialStoreToken && !(resourceSpecificCredentialStoreToken == rhs.resourceSpecificCredentialStoreToken))
+      return false;
+    return true;
+  }
+  bool operator != (const StoragePreference &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const StoragePreference & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(StoragePreference &a, StoragePreference &b);
+
+inline std::ostream& operator<<(std::ostream& out, const StoragePreference& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+typedef struct _UserResourceProfile__isset {
+  _UserResourceProfile__isset() : credentialStoreToken(false), computeResourcePreferences(false), storagePreferences(false), identityServerTenant(false), identityServerPwdCredToken(false) {}
+  bool credentialStoreToken :1;
+  bool computeResourcePreferences :1;
+  bool storagePreferences :1;
+  bool identityServerTenant :1;
+  bool identityServerPwdCredToken :1;
+} _UserResourceProfile__isset;
+
+class UserResourceProfile {
+ public:
+
+  UserResourceProfile(const UserResourceProfile&);
+  UserResourceProfile& operator=(const UserResourceProfile&);
+  UserResourceProfile() : userId(), credentialStoreToken(), identityServerTenant(), identityServerPwdCredToken() {
+  }
+
+  virtual ~UserResourceProfile() throw();
+  std::string userId;
+  std::string credentialStoreToken;
+  std::vector<ComputeResourcePreference>  computeResourcePreferences;
+  std::vector<StoragePreference>  storagePreferences;
+  std::string identityServerTenant;
+  std::string identityServerPwdCredToken;
+
+  _UserResourceProfile__isset __isset;
+
+  void __set_userId(const std::string& val);
+
+  void __set_credentialStoreToken(const std::string& val);
+
+  void __set_computeResourcePreferences(const std::vector<ComputeResourcePreference> & val);
+
+  void __set_storagePreferences(const std::vector<StoragePreference> & val);
+
+  void __set_identityServerTenant(const std::string& val);
+
+  void __set_identityServerPwdCredToken(const std::string& val);
+
+  bool operator == (const UserResourceProfile & rhs) const
+  {
+    if (!(userId == rhs.userId))
+      return false;
+    if (__isset.credentialStoreToken != rhs.__isset.credentialStoreToken)
+      return false;
+    else if (__isset.credentialStoreToken && !(credentialStoreToken == rhs.credentialStoreToken))
+      return false;
+    if (__isset.computeResourcePreferences != rhs.__isset.computeResourcePreferences)
+      return false;
+    else if (__isset.computeResourcePreferences && !(computeResourcePreferences == rhs.computeResourcePreferences))
+      return false;
+    if (__isset.storagePreferences != rhs.__isset.storagePreferences)
+      return false;
+    else if (__isset.storagePreferences && !(storagePreferences == rhs.storagePreferences))
+      return false;
+    if (__isset.identityServerTenant != rhs.__isset.identityServerTenant)
+      return false;
+    else if (__isset.identityServerTenant && !(identityServerTenant == rhs.identityServerTenant))
+      return false;
+    if (__isset.identityServerPwdCredToken != rhs.__isset.identityServerPwdCredToken)
+      return false;
+    else if (__isset.identityServerPwdCredToken && !(identityServerPwdCredToken == rhs.identityServerPwdCredToken))
+      return false;
+    return true;
+  }
+  bool operator != (const UserResourceProfile &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const UserResourceProfile & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(UserResourceProfile &a, UserResourceProfile &b);
+
+inline std::ostream& operator<<(std::ostream& out, const UserResourceProfile& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+}}}}} // namespace
+
+#endif


[08/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
Feature request: User Compute Preference


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

Branch: refs/heads/develop
Commit: 81c6ea841e265dc8f7f159e4bbe0d1457db2b213
Parents: e317d77
Author: Anuj Bhandar <bh...@gmail.com>
Authored: Sun Oct 2 20:57:28 2016 -0400
Committer: Anuj Bhandar <bh...@gmail.com>
Committed: Sun Oct 2 20:57:28 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |   276 +-
 .../java/org/apache/airavata/api/Airavata.java  | 57691 +++++++++++------
 .../UserComputeResourcePreference.java          |  1381 +
 .../UserResourceProfile.java                    |  1169 +
 .../UserStoragePreference.java                  |   728 +
 .../org/apache/airavata/model/job/JobModel.java |   103 +-
 .../airavata/model/process/ProcessModel.java    |   179 +-
 .../apache/airavata/model/task/TaskModel.java   |   178 +-
 .../core/app/catalog/impl/AppCatalogImpl.java   |     5 +
 .../catalog/impl/UsrResourceProfileImpl.java    |   356 +
 .../model/UserComputeResourcePreference.java    |   186 +
 .../model/UserComputeResourcePreferencePK.java  |    73 +
 .../app/catalog/model/UserResourceProfile.java  |   109 +
 .../catalog/model/UserStoragePreference.java    |   106 +
 .../catalog/model/UserStoragePreferencePK.java  |    73 +
 .../resources/AppCatAbstractResource.java       |    24 +
 .../ComputeHostPreferenceResource.java          |     4 +
 .../UserComputeHostPreferenceResource.java      |   451 +
 .../resources/UserResourceProfileResource.java  |   425 +
 .../UserStoragePreferenceResource.java          |   371 +
 .../catalog/util/AppCatalogResourceType.java    |     3 +
 .../util/AppCatalogThriftConversion.java        |    63 +
 .../airavata/registry/cpi/AppCatalog.java       |     7 +
 .../registry/cpi/UsrResourceProfile.java        |    87 +
 .../service/handler/RegistryServerHandler.java  |     2 +-
 .../airavata/registry/api/RegistryService.java  | 31191 ++++++---
 .../api/exception/RegistryServiceException.java |     2 +-
 .../airavata-apis/airavata_api.thrift           |   336 +-
 .../component-cpis/registry-api.thrift          |   282 +
 .../resource_catalog_models.thrift              |     3 +-
 .../user_resource_profile_model.thrift          |   105 +
 31 files changed, 69649 insertions(+), 26320 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 5ccf874..3f7773f 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -49,10 +49,13 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentD
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
 import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.airavata_commonsConstants;
@@ -3128,6 +3131,277 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    /**
+     * Register a User Resource Profile.
+     *
+     * @param UserResourceProfile User Resource Profile Object.
+     *   The userId should be obtained from Airavata user profile registration and passed to register a corresponding
+     *      resource profile.
+     * @return status.
+     * Returns a success/failure of the registration.
+     */
+    @Override
+    @SecurityCheck
+    public String registerUserResourceProfile(AuthzToken authzToken, UserResourceProfile userResourceProfile)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().registerUserResourceProfile(userResourceProfile);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error("Error while registering user resource profile...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while registering user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch the given User Resource Profile.
+     *
+     * @param userId The identifier for the requested User resource
+     *
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     *
+     * @return userResourceProfile
+     * User Resource Profile Object.
+     */
+    @Override
+    @SecurityCheck
+    public UserResourceProfile getUserResourceProfile(AuthzToken authzToken, String userId, String gatewayID) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getUserResourceProfile(userId, gatewayID);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while retrieving user resource profile...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while retrieving user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Update a User Resource Profile.
+     *
+     * @param userId : The identifier for the requested user resource profile to be updated.
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @param userResourceProfile User Resource Profile Object.
+     * @return status
+     * Returns a success/failure of the update.
+     */
+    @Override
+    @SecurityCheck
+    public boolean updateUserResourceProfile(AuthzToken authzToken,
+                                             String userId,
+                                             String gatewayID,
+                                             UserResourceProfile userResourceProfile) throws TException {
+        try {
+            return getRegistryServiceClient().updateUserResourceProfile(userId, gatewayID, userResourceProfile);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while updating user resource profile...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Delete the given User Resource Profile.
+     *
+     * @param userId  : The identifier for the requested userId resource to be deleted.
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @return status
+     * Returns a success/failure of the deletion.
+     */
+    @Override
+    @SecurityCheck
+    public boolean deleteUserResourceProfile(AuthzToken authzToken, String userId, String gatewayID) throws TException {
+        try {
+            return getRegistryServiceClient().deleteUserResourceProfile(userId, gatewayID);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while removing user resource profile...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while removing user resource profile. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Add a Compute Resource Preference to a registered User Resource profile.
+     *
+     * @param userId                 The identifier for the User Resource profile to be added.
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @param userComputeResourceId         Preferences related to a particular compute resource
+     * @param userComputeResourcePreference The ComputeResourcePreference object to be added to the resource profile.
+     * @return status
+     * Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     * Instead an update should be used.
+     */
+    @Override
+    @SecurityCheck
+    public boolean addUserComputeResourcePreference(AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId,
+                                                    UserComputeResourcePreference userComputeResourcePreference) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().addUserComputeResourcePreference(userId, gatewayID, userComputeResourceId, userComputeResourcePreference);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while registering user resource profile preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while registering user resource profile preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public boolean addUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageResourceId, UserStoragePreference dataStoragePreference)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().addUserStoragePreference(userId, gatewayID, userStorageResourceId, dataStoragePreference);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while registering user storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while registering user storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Fetch a Compute Resource Preference of a registered User Resource profile.
+     *
+     * @param userId : The identifier for the User Resource profile to be requested
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @param userComputeResourceId Preferences related to a particular compute resource
+     * @return computeResourcePreference
+     * Returns the ComputeResourcePreference object.
+     */
+    @Override
+    @SecurityCheck
+    public ComputeResourcePreference getUserComputeResourcePreference(AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user compute resource preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public StoragePreference getUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getUserStoragePreference(userId, gatewayID, userStorageId);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading user data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public List<UserResourceProfile> getAllUserResourceProfiles(AuthzToken authzToken) throws InvalidRequestException,
+            AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getAllUserResourceProfiles();
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading retrieving all user resource profiles. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Update a Compute Resource Preference to a registered User Resource profile.
+     *
+     * @param userId : The identifier for the User Resource profile to be updated.
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @param userComputeResourceId         Preferences related to a particular compute resource
+     * @param userComputeResourcePreference The ComputeResourcePreference object to be updated to the resource profile.
+     * @return status
+     * Returns a success/failure of the updation.
+     */
+    @Override
+    @SecurityCheck
+    public boolean updateUserComputeResourcePreference(AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId,
+                                                       UserComputeResourcePreference userComputeResourcePreference)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().updateUserComputeResourcePreference(userId, gatewayID, userComputeResourceId, userComputeResourcePreference);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user compute resource preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public boolean updateUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageId, UserStoragePreference dataStoragePreference) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().updateUserStoragePreference(userId, gatewayID, userStorageId, dataStoragePreference);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating user data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
+     * Delete the Compute Resource Preference of a registered User Resource profile.
+     *
+     * @param userId         The identifier for the User profile to be deleted.
+     * @param gatewayID The identifier to link a gateway for the requested User resource
+     * @param userComputeResourceId Preferences related to a particular compute resource
+     * @return status
+     * Returns a success/failure of the deletion.
+     */
+    @Override
+    @SecurityCheck
+    public boolean deleteUserComputeResourcePreference(AuthzToken authzToken, String userId,String gatewayID, String userComputeResourceId)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().deleteUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user compute resource preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating user compute resource preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public boolean deleteUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().deleteUserStoragePreference(userId, gatewayID, userStorageId);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading user data storage preference...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while updating user data storage preference. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+
+
     @Override
     @SecurityCheck
 	public List<String> getAllWorkflows(AuthzToken authzToken, String gatewayId) throws InvalidRequestException,


[19/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index c77fd8b..34499ed 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -40065,11 +40065,11 @@ uint32_t Airavata_deleteGatewayStoragePreference_presult::read(::apache::thrift:
 }
 
 
-Airavata_getAllWorkflows_args::~Airavata_getAllWorkflows_args() throw() {
+Airavata_registerUserResourceProfile_args::~Airavata_registerUserResourceProfile_args() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_registerUserResourceProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40082,7 +40082,7 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_gatewayId = false;
+  bool isset_userResourceProfile = false;
 
   while (true)
   {
@@ -40101,9 +40101,9 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->userResourceProfile.read(iprot);
+          isset_userResourceProfile = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -40119,22 +40119,22 @@ uint32_t Airavata_getAllWorkflows_args::read(::apache::thrift::protocol::TProtoc
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
+  if (!isset_userResourceProfile)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getAllWorkflows_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_registerUserResourceProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_args");
+  xfer += oprot->writeStructBegin("Airavata_registerUserResourceProfile_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->gatewayId);
+  xfer += oprot->writeFieldBegin("userResourceProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->userResourceProfile.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40143,21 +40143,21 @@ uint32_t Airavata_getAllWorkflows_args::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_getAllWorkflows_pargs::~Airavata_getAllWorkflows_pargs() throw() {
+Airavata_registerUserResourceProfile_pargs::~Airavata_registerUserResourceProfile_pargs() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_registerUserResourceProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_pargs");
+  xfer += oprot->writeStructBegin("Airavata_registerUserResourceProfile_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->gatewayId)));
+  xfer += oprot->writeFieldBegin("userResourceProfile", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->userResourceProfile)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40166,11 +40166,11 @@ uint32_t Airavata_getAllWorkflows_pargs::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_getAllWorkflows_result::~Airavata_getAllWorkflows_result() throw() {
+Airavata_registerUserResourceProfile_result::~Airavata_registerUserResourceProfile_result() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_registerUserResourceProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40192,20 +40192,8 @@ uint32_t Airavata_getAllWorkflows_result::read(::apache::thrift::protocol::TProt
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size368;
-            ::apache::thrift::protocol::TType _etype371;
-            xfer += iprot->readListBegin(_etype371, _size368);
-            this->success.resize(_size368);
-            uint32_t _i372;
-            for (_i372 = 0; _i372 < _size368; ++_i372)
-            {
-              xfer += iprot->readString(this->success[_i372]);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -40255,23 +40243,15 @@ uint32_t Airavata_getAllWorkflows_result::read(::apache::thrift::protocol::TProt
   return xfer;
 }
 
-uint32_t Airavata_getAllWorkflows_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_registerUserResourceProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getAllWorkflows_result");
+  xfer += oprot->writeStructBegin("Airavata_registerUserResourceProfile_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter373;
-      for (_iter373 = this->success.begin(); _iter373 != this->success.end(); ++_iter373)
-      {
-        xfer += oprot->writeString((*_iter373));
-      }
-      xfer += oprot->writeListEnd();
-    }
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
+    xfer += oprot->writeString(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -40296,11 +40276,11 @@ uint32_t Airavata_getAllWorkflows_result::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_getAllWorkflows_presult::~Airavata_getAllWorkflows_presult() throw() {
+Airavata_registerUserResourceProfile_presult::~Airavata_registerUserResourceProfile_presult() throw() {
 }
 
 
-uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_registerUserResourceProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40322,20 +40302,8 @@ uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TPro
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size374;
-            ::apache::thrift::protocol::TType _etype377;
-            xfer += iprot->readListBegin(_etype377, _size374);
-            (*(this->success)).resize(_size374);
-            uint32_t _i378;
-            for (_i378 = 0; _i378 < _size374; ++_i378)
-            {
-              xfer += iprot->readString((*(this->success))[_i378]);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -40386,11 +40354,11 @@ uint32_t Airavata_getAllWorkflows_presult::read(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_getWorkflow_args::~Airavata_getWorkflow_args() throw() {
+Airavata_getUserResourceProfile_args::~Airavata_getUserResourceProfile_args() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserResourceProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40403,7 +40371,7 @@ uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowTemplateId = false;
+  bool isset_userId = false;
 
   while (true)
   {
@@ -40423,8 +40391,8 @@ uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowTemplateId);
-          isset_workflowTemplateId = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -40440,22 +40408,22 @@ uint32_t Airavata_getWorkflow_args::read(::apache::thrift::protocol::TProtocol*
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_userId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserResourceProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_getUserResourceProfile_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowTemplateId);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40464,21 +40432,21 @@ uint32_t Airavata_getWorkflow_args::write(::apache::thrift::protocol::TProtocol*
 }
 
 
-Airavata_getWorkflow_pargs::~Airavata_getWorkflow_pargs() throw() {
+Airavata_getUserResourceProfile_pargs::~Airavata_getUserResourceProfile_pargs() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserResourceProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getUserResourceProfile_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowTemplateId)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40487,11 +40455,11 @@ uint32_t Airavata_getWorkflow_pargs::write(::apache::thrift::protocol::TProtocol
 }
 
 
-Airavata_getWorkflow_result::~Airavata_getWorkflow_result() throw() {
+Airavata_getUserResourceProfile_result::~Airavata_getUserResourceProfile_result() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserResourceProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40564,11 +40532,11 @@ uint32_t Airavata_getWorkflow_result::read(::apache::thrift::protocol::TProtocol
   return xfer;
 }
 
-uint32_t Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserResourceProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_getUserResourceProfile_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
@@ -40597,11 +40565,11 @@ uint32_t Airavata_getWorkflow_result::write(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_getWorkflow_presult::~Airavata_getWorkflow_presult() throw() {
+Airavata_getUserResourceProfile_presult::~Airavata_getUserResourceProfile_presult() throw() {
 }
 
 
-uint32_t Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserResourceProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40675,11 +40643,11 @@ uint32_t Airavata_getWorkflow_presult::read(::apache::thrift::protocol::TProtoco
 }
 
 
-Airavata_deleteWorkflow_args::~Airavata_deleteWorkflow_args() throw() {
+Airavata_updateUserResourceProfile_args::~Airavata_updateUserResourceProfile_args() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserResourceProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40692,7 +40660,8 @@ uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtoco
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowTemplateId = false;
+  bool isset_userId = false;
+  bool isset_userResourceProfile = false;
 
   while (true)
   {
@@ -40712,8 +40681,16 @@ uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtoco
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowTemplateId);
-          isset_workflowTemplateId = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->userResourceProfile.read(iprot);
+          isset_userResourceProfile = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -40729,22 +40706,28 @@ uint32_t Airavata_deleteWorkflow_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_userResourceProfile)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserResourceProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_updateUserResourceProfile_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowTemplateId);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userResourceProfile", ::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += this->userResourceProfile.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40753,21 +40736,25 @@ uint32_t Airavata_deleteWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_deleteWorkflow_pargs::~Airavata_deleteWorkflow_pargs() throw() {
+Airavata_updateUserResourceProfile_pargs::~Airavata_updateUserResourceProfile_pargs() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserResourceProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateUserResourceProfile_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowTemplateId)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("userResourceProfile", ::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += (*(this->userResourceProfile)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -40776,11 +40763,11 @@ uint32_t Airavata_deleteWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_deleteWorkflow_result::~Airavata_deleteWorkflow_result() throw() {
+Airavata_updateUserResourceProfile_result::~Airavata_updateUserResourceProfile_result() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserResourceProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40801,6 +40788,14 @@ uint32_t Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProto
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -40845,13 +40840,17 @@ uint32_t Airavata_deleteWorkflow_result::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserResourceProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_deleteWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_updateUserResourceProfile_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -40874,11 +40873,11 @@ uint32_t Airavata_deleteWorkflow_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_deleteWorkflow_presult::~Airavata_deleteWorkflow_presult() throw() {
+Airavata_updateUserResourceProfile_presult::~Airavata_updateUserResourceProfile_presult() throw() {
 }
 
 
-uint32_t Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserResourceProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40899,6 +40898,14 @@ uint32_t Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProt
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -40944,11 +40951,11 @@ uint32_t Airavata_deleteWorkflow_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_args::~Airavata_registerWorkflow_args() throw() {
+Airavata_deleteUserResourceProfile_args::~Airavata_deleteUserResourceProfile_args() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteUserResourceProfile_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -40961,8 +40968,7 @@ uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_gatewayId = false;
-  bool isset_workflow = false;
+  bool isset_userId = false;
 
   while (true)
   {
@@ -40982,16 +40988,8 @@ uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->gatewayId);
-          isset_gatewayId = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->workflow.read(iprot);
-          isset_workflow = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -41007,28 +41005,22 @@ uint32_t Airavata_registerWorkflow_args::read(::apache::thrift::protocol::TProto
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_gatewayId)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflow)
+  if (!isset_userId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteUserResourceProfile_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_deleteUserResourceProfile_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->gatewayId);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("workflow", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->workflow.write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41037,25 +41029,21 @@ uint32_t Airavata_registerWorkflow_args::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerWorkflow_pargs::~Airavata_registerWorkflow_pargs() throw() {
+Airavata_deleteUserResourceProfile_pargs::~Airavata_deleteUserResourceProfile_pargs() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteUserResourceProfile_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_deleteUserResourceProfile_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("gatewayId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->gatewayId)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("workflow", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->workflow)).write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41064,11 +41052,11 @@ uint32_t Airavata_registerWorkflow_pargs::write(::apache::thrift::protocol::TPro
 }
 
 
-Airavata_registerWorkflow_result::~Airavata_registerWorkflow_result() throw() {
+Airavata_deleteUserResourceProfile_result::~Airavata_deleteUserResourceProfile_result() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteUserResourceProfile_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41090,8 +41078,8 @@ uint32_t Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TPro
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -41141,15 +41129,15 @@ uint32_t Airavata_registerWorkflow_result::read(::apache::thrift::protocol::TPro
   return xfer;
 }
 
-uint32_t Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_deleteUserResourceProfile_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_registerWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_deleteUserResourceProfile_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -41174,11 +41162,11 @@ uint32_t Airavata_registerWorkflow_result::write(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_registerWorkflow_presult::~Airavata_registerWorkflow_presult() throw() {
+Airavata_deleteUserResourceProfile_presult::~Airavata_deleteUserResourceProfile_presult() throw() {
 }
 
 
-uint32_t Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_deleteUserResourceProfile_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41200,8 +41188,8 @@ uint32_t Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TPr
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -41252,11 +41240,11 @@ uint32_t Airavata_registerWorkflow_presult::read(::apache::thrift::protocol::TPr
 }
 
 
-Airavata_updateWorkflow_args::~Airavata_updateWorkflow_args() throw() {
+Airavata_addUserComputeResourcePreference_args::~Airavata_addUserComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41269,8 +41257,9 @@ uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowTemplateId = false;
-  bool isset_workflow = false;
+  bool isset_userId = false;
+  bool isset_computeResourceId = false;
+  bool isset_computeResourcePreference = false;
 
   while (true)
   {
@@ -41290,16 +41279,24 @@ uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowTemplateId);
-          isset_workflowTemplateId = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->workflow.read(iprot);
-          isset_workflow = true;
+          xfer += this->computeResourcePreference.read(iprot);
+          isset_computeResourcePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -41315,28 +41312,34 @@ uint32_t Airavata_updateWorkflow_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowTemplateId)
+  if (!isset_userId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflow)
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourcePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_args");
+  xfer += oprot->writeStructBegin("Airavata_addUserComputeResourcePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowTemplateId);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflow", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->workflow.write(oprot);
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourcePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->computeResourcePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41345,25 +41348,29 @@ uint32_t Airavata_updateWorkflow_args::write(::apache::thrift::protocol::TProtoc
 }
 
 
-Airavata_updateWorkflow_pargs::~Airavata_updateWorkflow_pargs() throw() {
+Airavata_addUserComputeResourcePreference_pargs::~Airavata_addUserComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_pargs");
+  xfer += oprot->writeStructBegin("Airavata_addUserComputeResourcePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowTemplateId", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowTemplateId)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflow", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->workflow)).write(oprot);
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourcePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->computeResourcePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41372,11 +41379,11 @@ uint32_t Airavata_updateWorkflow_pargs::write(::apache::thrift::protocol::TProto
 }
 
 
-Airavata_updateWorkflow_result::~Airavata_updateWorkflow_result() throw() {
+Airavata_addUserComputeResourcePreference_result::~Airavata_addUserComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41397,6 +41404,14 @@ uint32_t Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProto
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -41441,13 +41456,17 @@ uint32_t Airavata_updateWorkflow_result::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_updateWorkflow_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_updateWorkflow_result");
+  xfer += oprot->writeStructBegin("Airavata_addUserComputeResourcePreference_result");
 
-  if (this->__isset.ire) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->ire.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -41470,11 +41489,11 @@ uint32_t Airavata_updateWorkflow_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_updateWorkflow_presult::~Airavata_updateWorkflow_presult() throw() {
+Airavata_addUserComputeResourcePreference_presult::~Airavata_addUserComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_updateWorkflow_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41495,6 +41514,14 @@ uint32_t Airavata_updateWorkflow_presult::read(::apache::thrift::protocol::TProt
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->ire.read(iprot);
@@ -41540,11 +41567,11 @@ uint32_t Airavata_updateWorkflow_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_getWorkflowTemplateId_args::~Airavata_getWorkflowTemplateId_args() throw() {
+Airavata_addUserStoragePreference_args::~Airavata_addUserStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41557,7 +41584,9 @@ uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::T
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowName = false;
+  bool isset_userId = false;
+  bool isset_storageResourceId = false;
+  bool isset_storagePreference = false;
 
   while (true)
   {
@@ -41577,8 +41606,24 @@ uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::T
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowName);
-          isset_workflowName = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageResourceId);
+          isset_storageResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->storagePreference.read(iprot);
+          isset_storagePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -41594,22 +41639,34 @@ uint32_t Airavata_getWorkflowTemplateId_args::read(::apache::thrift::protocol::T
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowName)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_storageResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_storagePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getWorkflowTemplateId_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflowTemplateId_args");
+  xfer += oprot->writeStructBegin("Airavata_addUserStoragePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowName);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->storageResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storagePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->storagePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41618,21 +41675,29 @@ uint32_t Airavata_getWorkflowTemplateId_args::write(::apache::thrift::protocol::
 }
 
 
-Airavata_getWorkflowTemplateId_pargs::~Airavata_getWorkflowTemplateId_pargs() throw() {
+Airavata_addUserStoragePreference_pargs::~Airavata_addUserStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getWorkflowTemplateId_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getWorkflowTemplateId_pargs");
+  xfer += oprot->writeStructBegin("Airavata_addUserStoragePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowName)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->storageResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storagePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->storagePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41641,11 +41706,11 @@ uint32_t Airavata_getWorkflowTemplateId_pargs::write(::apache::thrift::protocol:
 }
 
 
-Airavata_getWorkflowTemplateId_result::~Airavata_getWorkflowTemplateId_result() throw() {
+Airavata_addUserStoragePreference_result::~Airavata_addUserStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getWorkflowTemplateId_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41667,8 +41732,8 @@ uint32_t Airavata_getWorkflowTemplateId_result::read(::apache::thrift::protocol:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -41718,15 +41783,15 @@ uint32_t Airavata_getWorkflowTemplateId_result::read(::apache::thrift::protocol:
   return xfer;
 }
 
-uint32_t Airavata_getWorkflowTemplateId_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_addUserStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getWorkflowTemplateId_result");
+  xfer += oprot->writeStructBegin("Airavata_addUserStoragePreference_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -41751,11 +41816,11 @@ uint32_t Airavata_getWorkflowTemplateId_result::write(::apache::thrift::protocol
 }
 
 
-Airavata_getWorkflowTemplateId_presult::~Airavata_getWorkflowTemplateId_presult() throw() {
+Airavata_addUserStoragePreference_presult::~Airavata_addUserStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getWorkflowTemplateId_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_addUserStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41777,8 +41842,8 @@ uint32_t Airavata_getWorkflowTemplateId_presult::read(::apache::thrift::protocol
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -41829,11 +41894,11 @@ uint32_t Airavata_getWorkflowTemplateId_presult::read(::apache::thrift::protocol
 }
 
 
-Airavata_isWorkflowExistWithName_args::~Airavata_isWorkflowExistWithName_args() throw() {
+Airavata_getUserComputeResourcePreference_args::~Airavata_getUserComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_isWorkflowExistWithName_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41846,7 +41911,8 @@ uint32_t Airavata_isWorkflowExistWithName_args::read(::apache::thrift::protocol:
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_workflowName = false;
+  bool isset_userId = false;
+  bool isset_computeResourceId = false;
 
   while (true)
   {
@@ -41866,8 +41932,16 @@ uint32_t Airavata_isWorkflowExistWithName_args::read(::apache::thrift::protocol:
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->workflowName);
-          isset_workflowName = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -41883,22 +41957,28 @@ uint32_t Airavata_isWorkflowExistWithName_args::read(::apache::thrift::protocol:
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_workflowName)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourceId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_isWorkflowExistWithName_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_isWorkflowExistWithName_args");
+  xfer += oprot->writeStructBegin("Airavata_getUserComputeResourcePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->workflowName);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->computeResourceId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41907,21 +41987,25 @@ uint32_t Airavata_isWorkflowExistWithName_args::write(::apache::thrift::protocol
 }
 
 
-Airavata_isWorkflowExistWithName_pargs::~Airavata_isWorkflowExistWithName_pargs() throw() {
+Airavata_getUserComputeResourcePreference_pargs::~Airavata_getUserComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_isWorkflowExistWithName_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_isWorkflowExistWithName_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getUserComputeResourcePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("workflowName", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->workflowName)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->computeResourceId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -41930,11 +42014,11 @@ uint32_t Airavata_isWorkflowExistWithName_pargs::write(::apache::thrift::protoco
 }
 
 
-Airavata_isWorkflowExistWithName_result::~Airavata_isWorkflowExistWithName_result() throw() {
+Airavata_getUserComputeResourcePreference_result::~Airavata_getUserComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_isWorkflowExistWithName_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -41956,8 +42040,8 @@ uint32_t Airavata_isWorkflowExistWithName_result::read(::apache::thrift::protoco
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42007,15 +42091,15 @@ uint32_t Airavata_isWorkflowExistWithName_result::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t Airavata_isWorkflowExistWithName_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_isWorkflowExistWithName_result");
+  xfer += oprot->writeStructBegin("Airavata_getUserComputeResourcePreference_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
-    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -42040,11 +42124,11 @@ uint32_t Airavata_isWorkflowExistWithName_result::write(::apache::thrift::protoc
 }
 
 
-Airavata_isWorkflowExistWithName_presult::~Airavata_isWorkflowExistWithName_presult() throw() {
+Airavata_getUserComputeResourcePreference_presult::~Airavata_getUserComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_isWorkflowExistWithName_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42066,8 +42150,8 @@ uint32_t Airavata_isWorkflowExistWithName_presult::read(::apache::thrift::protoc
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42118,11 +42202,11 @@ uint32_t Airavata_isWorkflowExistWithName_presult::read(::apache::thrift::protoc
 }
 
 
-Airavata_registerDataProduct_args::~Airavata_registerDataProduct_args() throw() {
+Airavata_getUserStoragePreference_args::~Airavata_getUserStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_registerDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42135,7 +42219,8 @@ uint32_t Airavata_registerDataProduct_args::read(::apache::thrift::protocol::TPr
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_dataProductModel = false;
+  bool isset_userId = false;
+  bool isset_storageResourceId = false;
 
   while (true)
   {
@@ -42154,9 +42239,17 @@ uint32_t Airavata_registerDataProduct_args::read(::apache::thrift::protocol::TPr
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->dataProductModel.read(iprot);
-          isset_dataProductModel = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageResourceId);
+          isset_storageResourceId = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -42172,22 +42265,28 @@ uint32_t Airavata_registerDataProduct_args::read(::apache::thrift::protocol::TPr
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_dataProductModel)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_storageResourceId)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_registerDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_args");
+  xfer += oprot->writeStructBegin("Airavata_getUserStoragePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("dataProductModel", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += this->dataProductModel.write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->storageResourceId);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -42196,21 +42295,25 @@ uint32_t Airavata_registerDataProduct_args::write(::apache::thrift::protocol::TP
 }
 
 
-Airavata_registerDataProduct_pargs::~Airavata_registerDataProduct_pargs() throw() {
+Airavata_getUserStoragePreference_pargs::~Airavata_getUserStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_registerDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getUserStoragePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("dataProductModel", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += (*(this->dataProductModel)).write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->storageResourceId)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -42219,11 +42322,11 @@ uint32_t Airavata_registerDataProduct_pargs::write(::apache::thrift::protocol::T
 }
 
 
-Airavata_registerDataProduct_result::~Airavata_registerDataProduct_result() throw() {
+Airavata_getUserStoragePreference_result::~Airavata_getUserStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_registerDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42245,8 +42348,8 @@ uint32_t Airavata_registerDataProduct_result::read(::apache::thrift::protocol::T
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42296,15 +42399,15 @@ uint32_t Airavata_registerDataProduct_result::read(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t Airavata_registerDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getUserStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_result");
+  xfer += oprot->writeStructBegin("Airavata_getUserStoragePreference_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -42329,11 +42432,11 @@ uint32_t Airavata_registerDataProduct_result::write(::apache::thrift::protocol::
 }
 
 
-Airavata_registerDataProduct_presult::~Airavata_registerDataProduct_presult() throw() {
+Airavata_getUserStoragePreference_presult::~Airavata_getUserStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_registerDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getUserStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42355,8 +42458,8 @@ uint32_t Airavata_registerDataProduct_presult::read(::apache::thrift::protocol::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42407,11 +42510,11 @@ uint32_t Airavata_registerDataProduct_presult::read(::apache::thrift::protocol::
 }
 
 
-Airavata_getDataProduct_args::~Airavata_getDataProduct_args() throw() {
+Airavata_getAllUserResourceProfiles_args::~Airavata_getAllUserResourceProfiles_args() throw() {
 }
 
 
-uint32_t Airavata_getDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserResourceProfiles_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42424,7 +42527,6 @@ uint32_t Airavata_getDataProduct_args::read(::apache::thrift::protocol::TProtoco
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_dataProductUri = false;
 
   while (true)
   {
@@ -42442,14 +42544,6 @@ uint32_t Airavata_getDataProduct_args::read(::apache::thrift::protocol::TProtoco
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->dataProductUri);
-          isset_dataProductUri = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -42461,58 +42555,48 @@ uint32_t Airavata_getDataProduct_args::read(::apache::thrift::protocol::TProtoco
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_dataProductUri)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserResourceProfiles_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getDataProduct_args");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserResourceProfiles_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("dataProductUri", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->dataProductUri);
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getDataProduct_pargs::~Airavata_getDataProduct_pargs() throw() {
+Airavata_getAllUserResourceProfiles_pargs::~Airavata_getAllUserResourceProfiles_pargs() throw() {
 }
 
 
-uint32_t Airavata_getDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserResourceProfiles_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getDataProduct_pargs");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserResourceProfiles_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("dataProductUri", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->dataProductUri)));
-  xfer += oprot->writeFieldEnd();
-
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
 }
 
 
-Airavata_getDataProduct_result::~Airavata_getDataProduct_result() throw() {
+Airavata_getAllUserResourceProfiles_result::~Airavata_getAllUserResourceProfiles_result() throw() {
 }
 
 
-uint32_t Airavata_getDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserResourceProfiles_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42534,8 +42618,20 @@ uint32_t Airavata_getDataProduct_result::read(::apache::thrift::protocol::TProto
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size368;
+            ::apache::thrift::protocol::TType _etype371;
+            xfer += iprot->readListBegin(_etype371, _size368);
+            this->success.resize(_size368);
+            uint32_t _i372;
+            for (_i372 = 0; _i372 < _size368; ++_i372)
+            {
+              xfer += this->success[_i372].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42585,15 +42681,23 @@ uint32_t Airavata_getDataProduct_result::read(::apache::thrift::protocol::TProto
   return xfer;
 }
 
-uint32_t Airavata_getDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_getAllUserResourceProfiles_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getDataProduct_result");
+  xfer += oprot->writeStructBegin("Airavata_getAllUserResourceProfiles_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::appcatalog::userresourceprofile::UserResourceProfile> ::const_iterator _iter373;
+      for (_iter373 = this->success.begin(); _iter373 != this->success.end(); ++_iter373)
+      {
+        xfer += (*_iter373).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -42618,11 +42722,11 @@ uint32_t Airavata_getDataProduct_result::write(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_getDataProduct_presult::~Airavata_getDataProduct_presult() throw() {
+Airavata_getAllUserResourceProfiles_presult::~Airavata_getAllUserResourceProfiles_presult() throw() {
 }
 
 
-uint32_t Airavata_getDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_getAllUserResourceProfiles_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42644,8 +42748,20 @@ uint32_t Airavata_getDataProduct_presult::read(::apache::thrift::protocol::TProt
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size374;
+            ::apache::thrift::protocol::TType _etype377;
+            xfer += iprot->readListBegin(_etype377, _size374);
+            (*(this->success)).resize(_size374);
+            uint32_t _i378;
+            for (_i378 = 0; _i378 < _size374; ++_i378)
+            {
+              xfer += (*(this->success))[_i378].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42696,11 +42812,11 @@ uint32_t Airavata_getDataProduct_presult::read(::apache::thrift::protocol::TProt
 }
 
 
-Airavata_registerReplicaLocation_args::~Airavata_registerReplicaLocation_args() throw() {
+Airavata_updateUserComputeResourcePreference_args::~Airavata_updateUserComputeResourcePreference_args() throw() {
 }
 
 
-uint32_t Airavata_registerReplicaLocation_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserComputeResourcePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42713,7 +42829,9 @@ uint32_t Airavata_registerReplicaLocation_args::read(::apache::thrift::protocol:
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_replicaLocationModel = false;
+  bool isset_userId = false;
+  bool isset_computeResourceId = false;
+  bool isset_computeResourcePreference = false;
 
   while (true)
   {
@@ -42732,9 +42850,25 @@ uint32_t Airavata_registerReplicaLocation_args::read(::apache::thrift::protocol:
         }
         break;
       case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->computeResourceId);
+          isset_computeResourceId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->replicaLocationModel.read(iprot);
-          isset_replicaLocationModel = true;
+          xfer += this->computeResourcePreference.read(iprot);
+          isset_computeResourcePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -42750,22 +42884,34 @@ uint32_t Airavata_registerReplicaLocation_args::read(::apache::thrift::protocol:
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_replicaLocationModel)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourceId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_computeResourcePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_registerReplicaLocation_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserComputeResourcePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_args");
+  xfer += oprot->writeStructBegin("Airavata_updateUserComputeResourcePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("replicaLocationModel", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += this->replicaLocationModel.write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->computeResourceId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourcePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->computeResourcePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -42774,21 +42920,29 @@ uint32_t Airavata_registerReplicaLocation_args::write(::apache::thrift::protocol
 }
 
 
-Airavata_registerReplicaLocation_pargs::~Airavata_registerReplicaLocation_pargs() throw() {
+Airavata_updateUserComputeResourcePreference_pargs::~Airavata_updateUserComputeResourcePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_registerReplicaLocation_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserComputeResourcePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateUserComputeResourcePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("replicaLocationModel", ::apache::thrift::protocol::T_STRUCT, 2);
-  xfer += (*(this->replicaLocationModel)).write(oprot);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourceId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->computeResourceId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("computeResourcePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->computeResourcePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -42797,11 +42951,11 @@ uint32_t Airavata_registerReplicaLocation_pargs::write(::apache::thrift::protoco
 }
 
 
-Airavata_registerReplicaLocation_result::~Airavata_registerReplicaLocation_result() throw() {
+Airavata_updateUserComputeResourcePreference_result::~Airavata_updateUserComputeResourcePreference_result() throw() {
 }
 
 
-uint32_t Airavata_registerReplicaLocation_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserComputeResourcePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42823,8 +42977,8 @@ uint32_t Airavata_registerReplicaLocation_result::read(::apache::thrift::protoco
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->success);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42874,15 +43028,15 @@ uint32_t Airavata_registerReplicaLocation_result::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t Airavata_registerReplicaLocation_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserComputeResourcePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_result");
+  xfer += oprot->writeStructBegin("Airavata_updateUserComputeResourcePreference_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
-    xfer += oprot->writeString(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -42907,11 +43061,11 @@ uint32_t Airavata_registerReplicaLocation_result::write(::apache::thrift::protoc
 }
 
 
-Airavata_registerReplicaLocation_presult::~Airavata_registerReplicaLocation_presult() throw() {
+Airavata_updateUserComputeResourcePreference_presult::~Airavata_updateUserComputeResourcePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_registerReplicaLocation_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserComputeResourcePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -42933,8 +43087,8 @@ uint32_t Airavata_registerReplicaLocation_presult::read(::apache::thrift::protoc
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -42985,11 +43139,11 @@ uint32_t Airavata_registerReplicaLocation_presult::read(::apache::thrift::protoc
 }
 
 
-Airavata_getParentDataProduct_args::~Airavata_getParentDataProduct_args() throw() {
+Airavata_updateUserStoragePreference_args::~Airavata_updateUserStoragePreference_args() throw() {
 }
 
 
-uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserStoragePreference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -43002,7 +43156,9 @@ uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TP
   using ::apache::thrift::protocol::TProtocolException;
 
   bool isset_authzToken = false;
-  bool isset_productUri = false;
+  bool isset_userId = false;
+  bool isset_storageId = false;
+  bool isset_storagePreference = false;
 
   while (true)
   {
@@ -43022,8 +43178,24 @@ uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TP
         break;
       case 2:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->productUri);
-          isset_productUri = true;
+          xfer += iprot->readString(this->userId);
+          isset_userId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->storageId);
+          isset_storageId = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->storagePreference.read(iprot);
+          isset_storagePreference = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -43039,22 +43211,34 @@ uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TP
 
   if (!isset_authzToken)
     throw TProtocolException(TProtocolException::INVALID_DATA);
-  if (!isset_productUri)
+  if (!isset_userId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_storageId)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_storagePreference)
     throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
-uint32_t Airavata_getParentDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserStoragePreference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_args");
+  xfer += oprot->writeStructBegin("Airavata_updateUserStoragePreference_args");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += this->authzToken.write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->productUri);
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->userId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->storageId);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storagePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += this->storagePreference.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -43063,21 +43247,29 @@ uint32_t Airavata_getParentDataProduct_args::write(::apache::thrift::protocol::T
 }
 
 
-Airavata_getParentDataProduct_pargs::~Airavata_getParentDataProduct_pargs() throw() {
+Airavata_updateUserStoragePreference_pargs::~Airavata_updateUserStoragePreference_pargs() throw() {
 }
 
 
-uint32_t Airavata_getParentDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserStoragePreference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_pargs");
+  xfer += oprot->writeStructBegin("Airavata_updateUserStoragePreference_pargs");
 
   xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
   xfer += (*(this->authzToken)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->productUri)));
+  xfer += oprot->writeFieldBegin("userId", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->userId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storageId", ::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->storageId)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("storagePreference", ::apache::thrift::protocol::T_STRUCT, 4);
+  xfer += (*(this->storagePreference)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -43086,11 +43278,11 @@ uint32_t Airavata_getParentDataProduct_pargs::write(::apache::thrift::protocol::
 }
 
 
-Airavata_getParentDataProduct_result::~Airavata_getParentDataProduct_result() throw() {
+Airavata_updateUserStoragePreference_result::~Airavata_updateUserStoragePreference_result() throw() {
 }
 
 
-uint32_t Airavata_getParentDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserStoragePreference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -43112,8 +43304,8 @@ uint32_t Airavata_getParentDataProduct_result::read(::apache::thrift::protocol::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -43163,15 +43355,15 @@ uint32_t Airavata_getParentDataProduct_result::read(::apache::thrift::protocol::
   return xfer;
 }
 
-uint32_t Airavata_getParentDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t Airavata_updateUserStoragePreference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_result");
+  xfer += oprot->writeStructBegin("Airavata_updateUserStoragePreference_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.ire) {
     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -43196,11 +43388,11 @@ uint32_t Airavata_getParentDataProduct_result::write(::apache::thrift::protocol:
 }
 
 
-Airavata_getParentDataProduct_presult::~Airavata_getParentDataProduct_presult() throw() {
+Airavata_updateUserStoragePreference_presult::~Airavata_updateUserStoragePreference_presult() throw() {
 }
 
 
-uint32_t Airavata_getParentDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t Airavata_updateUserStoragePreference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -43222,8 +43414,8 @@ uint32_t Airavata_getParentDataProduct_presult::read(::apache::thrift::protocol:
     switch (fid)
     

<TRUNCATED>

[21/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
correcting the registry code, testing not yet complete


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

Branch: refs/heads/develop
Commit: 8469effce22ffe3a54255d3920ee33b9d9035c06
Parents: 81c6ea8
Author: Anuj Bhandar <bh...@gmail.com>
Authored: Fri Oct 7 11:48:58 2016 -0400
Committer: Anuj Bhandar <bh...@gmail.com>
Committed: Fri Oct 7 11:48:58 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    41 +-
 .../java/org/apache/airavata/api/Airavata.java  | 39895 +++++++++--------
 .../main/resources/lib/airavata/Airavata.cpp    | 26659 +++++++----
 .../src/main/resources/lib/airavata/Airavata.h  |  2449 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |   282 +-
 .../resources/lib/airavata/airavata_api_types.h |     1 +
 .../resources/lib/airavata/job_model_types.cpp  |    30 +-
 .../resources/lib/airavata/job_model_types.h    |    12 +-
 .../lib/airavata/process_model_types.cpp        |    60 +-
 .../lib/airavata/process_model_types.h          |    22 +-
 .../resources/lib/airavata/task_model_types.cpp |    60 +-
 .../resources/lib/airavata/task_model_types.h   |    18 +-
 .../user_resource_profile_model_constants.cpp   |    34 +
 .../user_resource_profile_model_constants.h     |    41 +
 .../user_resource_profile_model_types.cpp       |   714 +
 .../user_resource_profile_model_types.h         |   321 +
 .../resources/lib/Airavata/API/Airavata.php     | 17440 ++++---
 .../lib/Airavata/Model/Process/Types.php        |    44 +-
 .../resources/lib/Airavata/Model/Task/Types.php |    44 +-
 .../lib/apache/airavata/api/Airavata-remote     |    91 +
 .../lib/apache/airavata/api/Airavata.py         | 15318 ++++---
 .../resources/lib/apache/airavata/api/ttypes.py |     1 +
 .../lib/apache/airavata/model/job/ttypes.py     |    22 +-
 .../lib/apache/airavata/model/process/ttypes.py |    42 +-
 .../lib/apache/airavata/model/task/ttypes.py    |    46 +-
 .../catalog/impl/UsrResourceProfileImpl.java    |    65 +-
 .../model/UserComputeResourcePreference.java    |    17 +-
 .../model/UserComputeResourcePreferencePK.java  |    12 +-
 .../app/catalog/model/UserResourceProfile.java  |     7 +-
 .../catalog/model/UserStoragePreference.java    |    15 +-
 .../catalog/model/UserStoragePreferencePK.java  |     9 -
 .../resources/AppCatAbstractResource.java       |    20 +-
 .../UserComputeHostPreferenceResource.java      |    76 +-
 .../resources/UserResourceProfileResource.java  |    63 +-
 .../UserStoragePreferenceResource.java          |    71 +-
 .../app/catalog/util/AppCatalogJPAUtils.java    |    72 +
 .../experiment/catalog/ExpCatResourceUtils.java |    12 +-
 .../src/main/resources/META-INF/persistence.xml |     3 +
 .../app/catalog/UserResourceProfileTest.java    |   121 +
 .../registry/cpi/UsrResourceProfile.java        |     3 +
 .../service/handler/RegistryServerHandler.java  |   566 +-
 .../airavata/registry/api/RegistryService.java  |  6585 ++-
 .../api/exception/RegistryServiceException.java |     2 +-
 .../airavata-apis/airavata_api.thrift           |    47 +
 .../component-cpis/registry-api.thrift          |    34 +
 45 files changed, 69095 insertions(+), 42392 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 3f7773f..9520246 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -3281,7 +3281,7 @@ public class AiravataServerHandler implements Airavata.Iface {
      */
     @Override
     @SecurityCheck
-    public ComputeResourcePreference getUserComputeResourcePreference(AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId)
+    public UserComputeResourcePreference getUserComputeResourcePreference(AuthzToken authzToken, String userId, String gatewayID, String userComputeResourceId)
             throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
             return getRegistryServiceClient().getUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
@@ -3296,7 +3296,7 @@ public class AiravataServerHandler implements Airavata.Iface {
 
     @Override
     @SecurityCheck
-    public StoragePreference getUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+    public UserStoragePreference getUserStoragePreference(AuthzToken authzToken, String userId, String gatewayID, String userStorageId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
         try {
             return getRegistryServiceClient().getUserStoragePreference(userId, gatewayID, userStorageId);
         } catch (ApplicationSettingsException | RegistryServiceException e) {
@@ -3308,6 +3308,43 @@ public class AiravataServerHandler implements Airavata.Iface {
         }
     }
 
+    /**
+     * Fetch all User Compute Resource Preferences of a registered gateway profile.
+     *
+     * @param userId
+     * @param gatewayID The identifier for the gateway profile to be requested
+     * @return computeResourcePreference
+     * Returns the ComputeResourcePreference object.
+     */
+    @Override
+    @SecurityCheck
+    public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(AuthzToken authzToken, String userId, String gatewayID)
+            throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getAllUserComputeResourcePreferences(userId, gatewayID);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading User compute resource preferences...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading User compute resource preferences. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    @Override
+    @SecurityCheck
+    public List<UserStoragePreference> getAllUserStoragePreferences(AuthzToken authzToken, String userId, String gatewayID) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+        try {
+            return getRegistryServiceClient().getAllUserStoragePreferences(userId, gatewayID);
+        } catch (ApplicationSettingsException | RegistryServiceException e) {
+            logger.error(userId, "Error while reading User data storage preferences...", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while reading User data storage preferences. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
     @Override
     @SecurityCheck
     public List<UserResourceProfile> getAllUserResourceProfiles(AuthzToken authzToken) throws InvalidRequestException,


[30/31] airavata git commit: adding final changes

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index fea5d29..5f8d700 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index 2d61640..9a242fd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index 00821f4..f683aa6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index a40feed..e584686 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index 5f0c583..43409dc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 4392111..6b03647 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index e834f02..572d3c6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index ec382af..3b96d84 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index e84c272..c81656a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index 73f75bc..b471a4f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 1aaf5f9..315159c 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 370db7f..3454d4a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index 7b1472b..a3be728 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index f002b5e..91d5e48 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index 964ae6c..241bc6d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *   User friendly reason on how the state is inferred.
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index ec2a745..24e2d0b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index 424de10..d058fbc 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index f15eff8..fd72d45 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index 1877ca5..e27c7ae 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index 7dbbd4f..bc5b96f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * EnvironmentSetupTaskModel: A structure holding the environment creation task details
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index a8374fe..6242758 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index 75e563f..fa2ea02 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 8021366..12770ca 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
  * subTaskModel:
  *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
index 4ac1a81..f7e9bfb 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * 
  * 
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics, NSFDemographics._Fields>, java.io.Serializable, Cloneable, Comparable<NSFDemographics> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NSFDemographics");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
index 3b7ccdd..ef18235 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
@@ -103,7 +103,7 @@ import org.slf4j.LoggerFactory;
  * *  User\u2019s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
  * *
  */
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserProfile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserProfile");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index 4bac979..102251d 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@ -23,35 +23,18 @@
  */
 package org.apache.airavata.model.workspace;
 
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.protocol.TTupleProtocol;
 import org.apache.thrift.scheme.IScheme;
 import org.apache.thrift.scheme.SchemeFactory;
 import org.apache.thrift.scheme.StandardScheme;
-
 import org.apache.thrift.scheme.TupleScheme;
-import org.apache.thrift.protocol.TTupleProtocol;
-import org.apache.thrift.protocol.TProtocolException;
-import org.apache.thrift.EncodingUtils;
-import org.apache.thrift.TException;
-import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.server.AbstractNonblockingServer.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
+
 import javax.annotation.Generated;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.*;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index ee408e5..f1bf76f 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
index 99abdea..bebdca6 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Notification implements org.apache.thrift.TBase<Notification, Notification._Fields>, java.io.Serializable, Cloneable, Comparable<Notification> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Notification");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 260ab5f..275c199 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index c243473..e0cfcc2 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
index c968175..0244501 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
@@ -211,7 +211,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String APP_MODULE_ID = "appModuleID";
         public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String COMPUTE_HOST_ID = "hostID";
-        public static final String GATEWAY_ID = "gatewayID";
+        public static final String GATEWAY_ID = "gatewayId";
         public static final String EXECUTABLE_PATH = "executablePath";
         public static final String APPLICATION_DESC = "applicationDesc";
         public static final String ENV_MODULE_LOAD_CMD = "envModuleLoaString";
@@ -239,7 +239,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public final class ApplicationInterfaceConstants {
         public static final String INTERFACE_ID = "interfaceID";
         public static final String APPLICATION_NAME = "appName";
-        public static final String GATEWAY_ID = "gatewayID";
+        public static final String GATEWAY_ID = "gatewayId";
     }
 
     public final class AppModuleMappingConstants {
@@ -295,7 +295,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     }
 
     public final class ComputeResourcePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayID";
+        public static final String GATEWAY_ID = "gatewayId";
         public static final String RESOURCE_ID = "resourceId";
         public static final String OVERRIDE_BY_AIRAVATA = "overrideByAiravata";
         public static final String PREFERED_JOB_SUB_PROTOCOL = "preferedJobSubmissionProtocol";
@@ -356,7 +356,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     }
 
     public final class StoragePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayID";
+        public static final String GATEWAY_ID = "gatewayId";
         public static final String STORAGE_ID = "storageResourceId";
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
index ed27935..fb35cd5 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
@@ -155,7 +155,6 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
-            logger.info(userId,"retrieved userId at UserREsourceProfileREsource : " + ids.getTopLevelIdentifier());
             generator.setParameter(UserResourceProfileConstants.USER_ID, ids.getTopLevelIdentifier().toString());
             generator.setParameter(UserResourceProfileConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
             Query q = generator.selectQuery(em);
@@ -170,6 +169,7 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
                 }
                 em.close();
             }
+            userResourceProfileResource.setUserId(ids.getTopLevelIdentifier().toString());
             return userResourceProfileResource;
         } catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/50cf71e4/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java b/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
index 6a8ff09..5f14387 100644
--- a/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
+++ b/modules/registry/registry-core/src/test/java/org/apache/airavata/app/catalog/UserResourceProfileTest.java
@@ -95,13 +95,13 @@ public class UserResourceProfileTest {
         list.add(preference2);
         System.out.println("input list size : " + list.size());
         uf.setUserComputeResourcePreferences(list);
-        uf.setGatewayID("testGateway");
-        uf.setUserId("testUser");
+        uf.setGatewayID("airavataPGA");
+        uf.setUserId("Anuj");
 
         String gwId = userProfile.addUserResourceProfile(uf);
         UserResourceProfile retrievedProfile = null;
-        if (userProfile.isUserResourceProfileExists("testUser","testGateway")){
-            retrievedProfile = userProfile.getUserResourceProfile("testUser","testGateway");
+        if (userProfile.isUserResourceProfileExists(uf.getUserId(),uf.getGatewayID())){
+            retrievedProfile = userProfile.getUserResourceProfile(uf.getUserId(),uf.getGatewayID());
             System.out.println("gateway ID :" + retrievedProfile.getGatewayID());
             System.out.println("user ID : " + retrievedProfile.getUserId());
             System.out.println("compute resource size : " + retrievedProfile.getUserComputeResourcePreferencesSize());


[25/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 57d4b46,2aef262..fda9c8e
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@@ -11342,670 -10846,766 +11345,862 @@@ class Client(Iface)
        raise result.ase
      if result.ae is not None:
        raise result.ae
 -    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGroupsUserBelongs failed: unknown result")
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getDataProduct failed: unknown result")
 +
++<<<<<<< HEAD
 +  def registerReplicaLocation(self, authzToken, replicaLocationModel):
 +    """
 +    Parameters:
 +     - authzToken
 +     - replicaLocationModel
 +    """
 +    self.send_registerReplicaLocation(authzToken, replicaLocationModel)
 +    return self.recv_registerReplicaLocation()
  
 +  def send_registerReplicaLocation(self, authzToken, replicaLocationModel):
 +    self._oprot.writeMessageBegin('registerReplicaLocation', TMessageType.CALL, self._seqid)
 +    args = registerReplicaLocation_args()
 +    args.authzToken = authzToken
 +    args.replicaLocationModel = replicaLocationModel
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
++=======
+   def isDataSharingEnabled(self):
+     self.send_isDataSharingEnabled()
+     return self.recv_isDataSharingEnabled()
+ 
+   def send_isDataSharingEnabled(self):
+     self._oprot.writeMessageBegin('isDataSharingEnabled', TMessageType.CALL, self._seqid)
+     args = isDataSharingEnabled_args()
+     args.write(self._oprot)
+     self._oprot.writeMessageEnd()
+     self._oprot.trans.flush()
+ 
+   def recv_isDataSharingEnabled(self):
+     iprot = self._iprot
+     (fname, mtype, rseqid) = iprot.readMessageBegin()
+     if mtype == TMessageType.EXCEPTION:
+       x = TApplicationException()
+       x.read(iprot)
+       iprot.readMessageEnd()
+       raise x
+     result = isDataSharingEnabled_result()
+     result.read(iprot)
+     iprot.readMessageEnd()
+     if result.success is not None:
+       return result.success
+     if result.ire is not None:
+       raise result.ire
+     if result.ace is not None:
+       raise result.ace
+     if result.ase is not None:
+       raise result.ase
+     if result.ae is not None:
+       raise result.ae
+     raise TApplicationException(TApplicationException.MISSING_RESULT, "isDataSharingEnabled failed: unknown result")
+ 
+ 
+ class Processor(Iface, TProcessor):
+   def __init__(self, handler):
+     self._handler = handler
+     self._processMap = {}
+     self._processMap["getAPIVersion"] = Processor.process_getAPIVersion
+     self._processMap["isUserExists"] = Processor.process_isUserExists
+     self._processMap["addGateway"] = Processor.process_addGateway
+     self._processMap["getAllUsersInGateway"] = Processor.process_getAllUsersInGateway
+     self._processMap["updateGateway"] = Processor.process_updateGateway
+     self._processMap["getGateway"] = Processor.process_getGateway
+     self._processMap["deleteGateway"] = Processor.process_deleteGateway
+     self._processMap["getAllGateways"] = Processor.process_getAllGateways
+     self._processMap["isGatewayExist"] = Processor.process_isGatewayExist
+     self._processMap["createNotification"] = Processor.process_createNotification
+     self._processMap["updateNotification"] = Processor.process_updateNotification
+     self._processMap["deleteNotification"] = Processor.process_deleteNotification
+     self._processMap["getNotification"] = Processor.process_getNotification
+     self._processMap["getAllNotifications"] = Processor.process_getAllNotifications
+     self._processMap["generateAndRegisterSSHKeys"] = Processor.process_generateAndRegisterSSHKeys
+     self._processMap["registerPwdCredential"] = Processor.process_registerPwdCredential
+     self._processMap["getSSHPubKey"] = Processor.process_getSSHPubKey
+     self._processMap["getAllGatewaySSHPubKeys"] = Processor.process_getAllGatewaySSHPubKeys
+     self._processMap["getAllGatewayPWDCredentials"] = Processor.process_getAllGatewayPWDCredentials
+     self._processMap["deleteSSHPubKey"] = Processor.process_deleteSSHPubKey
+     self._processMap["deletePWDCredential"] = Processor.process_deletePWDCredential
+     self._processMap["createProject"] = Processor.process_createProject
+     self._processMap["updateProject"] = Processor.process_updateProject
+     self._processMap["getProject"] = Processor.process_getProject
+     self._processMap["deleteProject"] = Processor.process_deleteProject
+     self._processMap["getUserProjects"] = Processor.process_getUserProjects
+     self._processMap["searchProjects"] = Processor.process_searchProjects
+     self._processMap["searchExperiments"] = Processor.process_searchExperiments
+     self._processMap["getExperimentStatistics"] = Processor.process_getExperimentStatistics
+     self._processMap["getExperimentsInProject"] = Processor.process_getExperimentsInProject
+     self._processMap["getUserExperiments"] = Processor.process_getUserExperiments
+     self._processMap["createExperiment"] = Processor.process_createExperiment
+     self._processMap["deleteExperiment"] = Processor.process_deleteExperiment
+     self._processMap["getExperiment"] = Processor.process_getExperiment
+     self._processMap["getDetailedExperimentTree"] = Processor.process_getDetailedExperimentTree
+     self._processMap["updateExperiment"] = Processor.process_updateExperiment
+     self._processMap["updateExperimentConfiguration"] = Processor.process_updateExperimentConfiguration
+     self._processMap["updateResourceScheduleing"] = Processor.process_updateResourceScheduleing
+     self._processMap["validateExperiment"] = Processor.process_validateExperiment
+     self._processMap["launchExperiment"] = Processor.process_launchExperiment
+     self._processMap["getExperimentStatus"] = Processor.process_getExperimentStatus
+     self._processMap["getExperimentOutputs"] = Processor.process_getExperimentOutputs
+     self._processMap["getIntermediateOutputs"] = Processor.process_getIntermediateOutputs
+     self._processMap["getJobStatuses"] = Processor.process_getJobStatuses
+     self._processMap["getJobDetails"] = Processor.process_getJobDetails
+     self._processMap["cloneExperiment"] = Processor.process_cloneExperiment
+     self._processMap["terminateExperiment"] = Processor.process_terminateExperiment
+     self._processMap["registerApplicationModule"] = Processor.process_registerApplicationModule
+     self._processMap["getApplicationModule"] = Processor.process_getApplicationModule
+     self._processMap["updateApplicationModule"] = Processor.process_updateApplicationModule
+     self._processMap["getAllAppModules"] = Processor.process_getAllAppModules
+     self._processMap["deleteApplicationModule"] = Processor.process_deleteApplicationModule
+     self._processMap["registerApplicationDeployment"] = Processor.process_registerApplicationDeployment
+     self._processMap["getApplicationDeployment"] = Processor.process_getApplicationDeployment
+     self._processMap["updateApplicationDeployment"] = Processor.process_updateApplicationDeployment
+     self._processMap["deleteApplicationDeployment"] = Processor.process_deleteApplicationDeployment
+     self._processMap["getAllApplicationDeployments"] = Processor.process_getAllApplicationDeployments
+     self._processMap["getAppModuleDeployedResources"] = Processor.process_getAppModuleDeployedResources
+     self._processMap["registerApplicationInterface"] = Processor.process_registerApplicationInterface
+     self._processMap["cloneApplicationInterface"] = Processor.process_cloneApplicationInterface
+     self._processMap["getApplicationInterface"] = Processor.process_getApplicationInterface
+     self._processMap["updateApplicationInterface"] = Processor.process_updateApplicationInterface
+     self._processMap["deleteApplicationInterface"] = Processor.process_deleteApplicationInterface
+     self._processMap["getAllApplicationInterfaceNames"] = Processor.process_getAllApplicationInterfaceNames
+     self._processMap["getAllApplicationInterfaces"] = Processor.process_getAllApplicationInterfaces
+     self._processMap["getApplicationInputs"] = Processor.process_getApplicationInputs
+     self._processMap["getApplicationOutputs"] = Processor.process_getApplicationOutputs
+     self._processMap["getAvailableAppInterfaceComputeResources"] = Processor.process_getAvailableAppInterfaceComputeResources
+     self._processMap["registerComputeResource"] = Processor.process_registerComputeResource
+     self._processMap["getComputeResource"] = Processor.process_getComputeResource
+     self._processMap["getAllComputeResourceNames"] = Processor.process_getAllComputeResourceNames
+     self._processMap["updateComputeResource"] = Processor.process_updateComputeResource
+     self._processMap["deleteComputeResource"] = Processor.process_deleteComputeResource
+     self._processMap["registerStorageResource"] = Processor.process_registerStorageResource
+     self._processMap["getStorageResource"] = Processor.process_getStorageResource
+     self._processMap["getAllStorageResourceNames"] = Processor.process_getAllStorageResourceNames
+     self._processMap["updateStorageResource"] = Processor.process_updateStorageResource
+     self._processMap["deleteStorageResource"] = Processor.process_deleteStorageResource
+     self._processMap["addLocalSubmissionDetails"] = Processor.process_addLocalSubmissionDetails
+     self._processMap["updateLocalSubmissionDetails"] = Processor.process_updateLocalSubmissionDetails
+     self._processMap["getLocalJobSubmission"] = Processor.process_getLocalJobSubmission
+     self._processMap["addSSHJobSubmissionDetails"] = Processor.process_addSSHJobSubmissionDetails
+     self._processMap["addSSHForkJobSubmissionDetails"] = Processor.process_addSSHForkJobSubmissionDetails
+     self._processMap["getSSHJobSubmission"] = Processor.process_getSSHJobSubmission
+     self._processMap["addUNICOREJobSubmissionDetails"] = Processor.process_addUNICOREJobSubmissionDetails
+     self._processMap["getUnicoreJobSubmission"] = Processor.process_getUnicoreJobSubmission
+     self._processMap["addCloudJobSubmissionDetails"] = Processor.process_addCloudJobSubmissionDetails
+     self._processMap["getCloudJobSubmission"] = Processor.process_getCloudJobSubmission
+     self._processMap["updateSSHJobSubmissionDetails"] = Processor.process_updateSSHJobSubmissionDetails
+     self._processMap["updateCloudJobSubmissionDetails"] = Processor.process_updateCloudJobSubmissionDetails
+     self._processMap["updateUnicoreJobSubmissionDetails"] = Processor.process_updateUnicoreJobSubmissionDetails
+     self._processMap["addLocalDataMovementDetails"] = Processor.process_addLocalDataMovementDetails
+     self._processMap["updateLocalDataMovementDetails"] = Processor.process_updateLocalDataMovementDetails
+     self._processMap["getLocalDataMovement"] = Processor.process_getLocalDataMovement
+     self._processMap["addSCPDataMovementDetails"] = Processor.process_addSCPDataMovementDetails
+     self._processMap["updateSCPDataMovementDetails"] = Processor.process_updateSCPDataMovementDetails
+     self._processMap["getSCPDataMovement"] = Processor.process_getSCPDataMovement
+     self._processMap["addUnicoreDataMovementDetails"] = Processor.process_addUnicoreDataMovementDetails
+     self._processMap["updateUnicoreDataMovementDetails"] = Processor.process_updateUnicoreDataMovementDetails
+     self._processMap["getUnicoreDataMovement"] = Processor.process_getUnicoreDataMovement
+     self._processMap["addGridFTPDataMovementDetails"] = Processor.process_addGridFTPDataMovementDetails
+     self._processMap["updateGridFTPDataMovementDetails"] = Processor.process_updateGridFTPDataMovementDetails
+     self._processMap["getGridFTPDataMovement"] = Processor.process_getGridFTPDataMovement
+     self._processMap["changeJobSubmissionPriority"] = Processor.process_changeJobSubmissionPriority
+     self._processMap["changeDataMovementPriority"] = Processor.process_changeDataMovementPriority
+     self._processMap["changeJobSubmissionPriorities"] = Processor.process_changeJobSubmissionPriorities
+     self._processMap["changeDataMovementPriorities"] = Processor.process_changeDataMovementPriorities
+     self._processMap["deleteJobSubmissionInterface"] = Processor.process_deleteJobSubmissionInterface
+     self._processMap["deleteDataMovementInterface"] = Processor.process_deleteDataMovementInterface
+     self._processMap["registerResourceJobManager"] = Processor.process_registerResourceJobManager
+     self._processMap["updateResourceJobManager"] = Processor.process_updateResourceJobManager
+     self._processMap["getResourceJobManager"] = Processor.process_getResourceJobManager
+     self._processMap["deleteResourceJobManager"] = Processor.process_deleteResourceJobManager
+     self._processMap["deleteBatchQueue"] = Processor.process_deleteBatchQueue
+     self._processMap["registerGatewayResourceProfile"] = Processor.process_registerGatewayResourceProfile
+     self._processMap["getGatewayResourceProfile"] = Processor.process_getGatewayResourceProfile
+     self._processMap["updateGatewayResourceProfile"] = Processor.process_updateGatewayResourceProfile
+     self._processMap["deleteGatewayResourceProfile"] = Processor.process_deleteGatewayResourceProfile
+     self._processMap["addGatewayComputeResourcePreference"] = Processor.process_addGatewayComputeResourcePreference
+     self._processMap["addGatewayStoragePreference"] = Processor.process_addGatewayStoragePreference
+     self._processMap["getGatewayComputeResourcePreference"] = Processor.process_getGatewayComputeResourcePreference
+     self._processMap["getGatewayStoragePreference"] = Processor.process_getGatewayStoragePreference
+     self._processMap["getAllGatewayComputeResourcePreferences"] = Processor.process_getAllGatewayComputeResourcePreferences
+     self._processMap["getAllGatewayStoragePreferences"] = Processor.process_getAllGatewayStoragePreferences
+     self._processMap["getAllGatewayResourceProfiles"] = Processor.process_getAllGatewayResourceProfiles
+     self._processMap["updateGatewayComputeResourcePreference"] = Processor.process_updateGatewayComputeResourcePreference
+     self._processMap["updateGatewayStoragePreference"] = Processor.process_updateGatewayStoragePreference
+     self._processMap["deleteGatewayComputeResourcePreference"] = Processor.process_deleteGatewayComputeResourcePreference
+     self._processMap["deleteGatewayStoragePreference"] = Processor.process_deleteGatewayStoragePreference
+     self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
+     self._processMap["getWorkflow"] = Processor.process_getWorkflow
+     self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
+     self._processMap["registerWorkflow"] = Processor.process_registerWorkflow
+     self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
+     self._processMap["getWorkflowTemplateId"] = Processor.process_getWorkflowTemplateId
+     self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
+     self._processMap["registerDataProduct"] = Processor.process_registerDataProduct
+     self._processMap["getDataProduct"] = Processor.process_getDataProduct
+     self._processMap["registerReplicaLocation"] = Processor.process_registerReplicaLocation
+     self._processMap["getParentDataProduct"] = Processor.process_getParentDataProduct
+     self._processMap["getChildDataProducts"] = Processor.process_getChildDataProducts
+     self._processMap["shareResourceWithUsers"] = Processor.process_shareResourceWithUsers
+     self._processMap["revokeSharingOfResourceFromUsers"] = Processor.process_revokeSharingOfResourceFromUsers
+     self._processMap["getAllAccessibleUsers"] = Processor.process_getAllAccessibleUsers
+     self._processMap["createGroup"] = Processor.process_createGroup
+     self._processMap["updateGroup"] = Processor.process_updateGroup
+     self._processMap["deleteGroup"] = Processor.process_deleteGroup
+     self._processMap["getGroup"] = Processor.process_getGroup
+     self._processMap["getAllGroupsUserBelongs"] = Processor.process_getAllGroupsUserBelongs
+     self._processMap["isDataSharingEnabled"] = Processor.process_isDataSharingEnabled
++>>>>>>> upstream/develop
  
 -  def process(self, iprot, oprot):
 -    (name, type, seqid) = iprot.readMessageBegin()
 -    if name not in self._processMap:
 -      iprot.skip(TType.STRUCT)
 +  def recv_registerReplicaLocation(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
        iprot.readMessageEnd()
 -      x = TApplicationException(TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % (name))
 -      oprot.writeMessageBegin(name, TMessageType.EXCEPTION, seqid)
 -      x.write(oprot)
 -      oprot.writeMessageEnd()
 -      oprot.trans.flush()
 -      return
 -    else:
 -      self._processMap[name](self, seqid, iprot, oprot)
 -    return True
 -
 -  def process_getAPIVersion(self, seqid, iprot, oprot):
 -    args = getAPIVersion_args()
 -    args.read(iprot)
 +      raise x
 +    result = registerReplicaLocation_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = getAPIVersion_result()
 -    try:
 -      result.success = self._handler.getAPIVersion(args.authzToken)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAPIVersion", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerReplicaLocation failed: unknown result")
  
 -  def process_isUserExists(self, seqid, iprot, oprot):
 -    args = isUserExists_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = isUserExists_result()
 -    try:
 -      result.success = self._handler.isUserExists(args.authzToken, args.gatewayId, args.userName)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("isUserExists", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def getParentDataProduct(self, authzToken, productUri):
 +    """
 +    Parameters:
 +     - authzToken
 +     - productUri
 +    """
 +    self.send_getParentDataProduct(authzToken, productUri)
 +    return self.recv_getParentDataProduct()
  
 -  def process_addGateway(self, seqid, iprot, oprot):
 -    args = addGateway_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = addGateway_result()
 -    try:
 -      result.success = self._handler.addGateway(args.authzToken, args.gateway)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("addGateway", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def send_getParentDataProduct(self, authzToken, productUri):
 +    self._oprot.writeMessageBegin('getParentDataProduct', TMessageType.CALL, self._seqid)
 +    args = getParentDataProduct_args()
 +    args.authzToken = authzToken
 +    args.productUri = productUri
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
  
 -  def process_getAllUsersInGateway(self, seqid, iprot, oprot):
 -    args = getAllUsersInGateway_args()
 -    args.read(iprot)
 +  def recv_getParentDataProduct(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = getParentDataProduct_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = getAllUsersInGateway_result()
 -    try:
 -      result.success = self._handler.getAllUsersInGateway(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAllUsersInGateway", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getParentDataProduct failed: unknown result")
  
 -  def process_updateGateway(self, seqid, iprot, oprot):
 -    args = updateGateway_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = updateGateway_result()
 -    try:
 -      result.success = self._handler.updateGateway(args.authzToken, args.gatewayId, args.updatedGateway)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("updateGateway", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def getChildDataProducts(self, authzToken, productUri):
 +    """
 +    Parameters:
 +     - authzToken
 +     - productUri
 +    """
 +    self.send_getChildDataProducts(authzToken, productUri)
 +    return self.recv_getChildDataProducts()
  
 -  def process_getGateway(self, seqid, iprot, oprot):
 -    args = getGateway_args()
 -    args.read(iprot)
 +  def send_getChildDataProducts(self, authzToken, productUri):
 +    self._oprot.writeMessageBegin('getChildDataProducts', TMessageType.CALL, self._seqid)
 +    args = getChildDataProducts_args()
 +    args.authzToken = authzToken
 +    args.productUri = productUri
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_getChildDataProducts(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = getChildDataProducts_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = getGateway_result()
 -    try:
 -      result.success = self._handler.getGateway(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getGateway", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getChildDataProducts failed: unknown result")
  
 -  def process_deleteGateway(self, seqid, iprot, oprot):
 -    args = deleteGateway_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = deleteGateway_result()
 -    try:
 -      result.success = self._handler.deleteGateway(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("deleteGateway", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
 +    """
 +    Group Manager and Data Sharing Related API methods
  
 -  def process_getAllGateways(self, seqid, iprot, oprot):
 -    args = getAllGateways_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = getAllGateways_result()
 -    try:
 -      result.success = self._handler.getAllGateways(args.authzToken)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAllGateways", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
  
 -  def process_isGatewayExist(self, seqid, iprot, oprot):
 -    args = isGatewayExist_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = isGatewayExist_result()
 -    try:
 -      result.success = self._handler.isGatewayExist(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("isGatewayExist", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    Parameters:
 +     - authzToken
 +     - resourceId
 +     - resourceType
 +     - userPermissionList
 +    """
 +    self.send_shareResourceWithUsers(authzToken, resourceId, resourceType, userPermissionList)
 +    return self.recv_shareResourceWithUsers()
  
 -  def process_createNotification(self, seqid, iprot, oprot):
 -    args = createNotification_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = createNotification_result()
 -    try:
 -      result.success = self._handler.createNotification(args.authzToken, args.notification)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("createNotification", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def send_shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
 +    self._oprot.writeMessageBegin('shareResourceWithUsers', TMessageType.CALL, self._seqid)
 +    args = shareResourceWithUsers_args()
 +    args.authzToken = authzToken
 +    args.resourceId = resourceId
 +    args.resourceType = resourceType
 +    args.userPermissionList = userPermissionList
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
  
 -  def process_updateNotification(self, seqid, iprot, oprot):
 -    args = updateNotification_args()
 -    args.read(iprot)
 +  def recv_shareResourceWithUsers(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = shareResourceWithUsers_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = updateNotification_result()
 -    try:
 -      result.success = self._handler.updateNotification(args.authzToken, args.notification)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("updateNotification", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "shareResourceWithUsers failed: unknown result")
  
 -  def process_deleteNotification(self, seqid, iprot, oprot):
 -    args = deleteNotification_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = deleteNotification_result()
 -    try:
 -      result.success = self._handler.deleteNotification(args.authzToken, args.gatewayId, args.notificationId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("deleteNotification", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
 +    """
 +    Parameters:
 +     - authzToken
 +     - resourceId
 +     - resourceType
 +     - userPermissionList
 +    """
 +    self.send_revokeSharingOfResourceFromUsers(authzToken, resourceId, resourceType, userPermissionList)
 +    return self.recv_revokeSharingOfResourceFromUsers()
  
 -  def process_getNotification(self, seqid, iprot, oprot):
 -    args = getNotification_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = getNotification_result()
 -    try:
 -      result.success = self._handler.getNotification(args.authzToken, args.gatewayId, args.notificationId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getNotification", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def send_revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
 +    self._oprot.writeMessageBegin('revokeSharingOfResourceFromUsers', TMessageType.CALL, self._seqid)
 +    args = revokeSharingOfResourceFromUsers_args()
 +    args.authzToken = authzToken
 +    args.resourceId = resourceId
 +    args.resourceType = resourceType
 +    args.userPermissionList = userPermissionList
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
  
 -  def process_getAllNotifications(self, seqid, iprot, oprot):
 -    args = getAllNotifications_args()
 -    args.read(iprot)
 +  def recv_revokeSharingOfResourceFromUsers(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = revokeSharingOfResourceFromUsers_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = getAllNotifications_result()
 -    try:
 -      result.success = self._handler.getAllNotifications(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAllNotifications", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "revokeSharingOfResourceFromUsers failed: unknown result")
  
 -  def process_generateAndRegisterSSHKeys(self, seqid, iprot, oprot):
 -    args = generateAndRegisterSSHKeys_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = generateAndRegisterSSHKeys_result()
 -    try:
 -      result.success = self._handler.generateAndRegisterSSHKeys(args.authzToken, args.gatewayId, args.userName)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("generateAndRegisterSSHKeys", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
 +    """
 +    Parameters:
 +     - authzToken
 +     - resourceId
 +     - resourceType
 +     - permissionType
 +    """
 +    self.send_getAllAccessibleUsers(authzToken, resourceId, resourceType, permissionType)
 +    return self.recv_getAllAccessibleUsers()
  
 -  def process_registerPwdCredential(self, seqid, iprot, oprot):
 -    args = registerPwdCredential_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = registerPwdCredential_result()
 -    try:
 -      result.success = self._handler.registerPwdCredential(args.authzToken, args.gatewayId, args.portalUserName, args.loginUserName, args.password, args.description)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("registerPwdCredential", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def send_getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
 +    self._oprot.writeMessageBegin('getAllAccessibleUsers', TMessageType.CALL, self._seqid)
 +    args = getAllAccessibleUsers_args()
 +    args.authzToken = authzToken
 +    args.resourceId = resourceId
 +    args.resourceType = resourceType
 +    args.permissionType = permissionType
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
  
 -  def process_getSSHPubKey(self, seqid, iprot, oprot):
 -    args = getSSHPubKey_args()
 -    args.read(iprot)
 +  def recv_getAllAccessibleUsers(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = getAllAccessibleUsers_result()
 +    result.read(iprot)
      iprot.readMessageEnd()
 -    result = getSSHPubKey_result()
 -    try:
 -      result.success = self._handler.getSSHPubKey(args.authzToken, args.airavataCredStoreToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getSSHPubKey", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllAccessibleUsers failed: unknown result")
  
 -  def process_getAllGatewaySSHPubKeys(self, seqid, iprot, oprot):
 -    args = getAllGatewaySSHPubKeys_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = getAllGatewaySSHPubKeys_result()
 -    try:
 -      result.success = self._handler.getAllGatewaySSHPubKeys(args.authzToken, args.gatewayId)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAllGatewaySSHPubKeys", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def createGroup(self, authzToken, groupModel):
 +    """
 +    Parameters:
 +     - authzToken
 +     - groupModel
 +    """
 +    self.send_createGroup(authzToken, groupModel)
 +    return self.recv_createGroup()
  
 -  def process_getAllGatewayPWDCredentials(self, seqid, iprot, oprot):
 -    args = getAllGatewayPWDCredentials_args()
 +  def send_createGroup(self, authzToken, groupModel):
 +    self._oprot.writeMessageBegin('createGroup', TMessageType.CALL, self._seqid)
 +    args = createGroup_args()
 +    args.authzToken = authzToken
 +    args.groupModel = groupModel
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_createGroup(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = createGroup_result()
 +    result.read(iprot)
 +    iprot.readMessageEnd()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "createGroup failed: unknown result")
 +
 +  def updateGroup(self, authzToken, groupModel):
 +    """
 +    Parameters:
 +     - authzToken
 +     - groupModel
 +    """
 +    self.send_updateGroup(authzToken, groupModel)
 +    return self.recv_updateGroup()
 +
 +  def send_updateGroup(self, authzToken, groupModel):
 +    self._oprot.writeMessageBegin('updateGroup', TMessageType.CALL, self._seqid)
 +    args = updateGroup_args()
 +    args.authzToken = authzToken
 +    args.groupModel = groupModel
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_updateGroup(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = updateGroup_result()
 +    result.read(iprot)
 +    iprot.readMessageEnd()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGroup failed: unknown result")
 +
 +  def deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
 +    """
 +    Parameters:
 +     - authzToken
 +     - groupId
 +     - ownerId
 +     - gatewayId
 +    """
 +    self.send_deleteGroup(authzToken, groupId, ownerId, gatewayId)
 +    return self.recv_deleteGroup()
 +
 +  def send_deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
 +    self._oprot.writeMessageBegin('deleteGroup', TMessageType.CALL, self._seqid)
 +    args = deleteGroup_args()
 +    args.authzToken = authzToken
 +    args.groupId = groupId
 +    args.ownerId = ownerId
 +    args.gatewayId = gatewayId
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_deleteGroup(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = deleteGroup_result()
 +    result.read(iprot)
 +    iprot.readMessageEnd()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGroup failed: unknown result")
 +
 +  def getGroup(self, authzToken, groupId):
 +    """
 +    Parameters:
 +     - authzToken
 +     - groupId
 +    """
 +    self.send_getGroup(authzToken, groupId)
 +    return self.recv_getGroup()
 +
 +  def send_getGroup(self, authzToken, groupId):
 +    self._oprot.writeMessageBegin('getGroup', TMessageType.CALL, self._seqid)
 +    args = getGroup_args()
 +    args.authzToken = authzToken
 +    args.groupId = groupId
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_getGroup(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = getGroup_result()
 +    result.read(iprot)
 +    iprot.readMessageEnd()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getGroup failed: unknown result")
 +
 +  def getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
 +    """
 +    Parameters:
 +     - authzToken
 +     - userName
 +     - gatewayId
 +    """
 +    self.send_getAllGroupsUserBelongs(authzToken, userName, gatewayId)
 +    return self.recv_getAllGroupsUserBelongs()
 +
 +  def send_getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
 +    self._oprot.writeMessageBegin('getAllGroupsUserBelongs', TMessageType.CALL, self._seqid)
 +    args = getAllGroupsUserBelongs_args()
 +    args.authzToken = authzToken
 +    args.userName = userName
 +    args.gatewayId = gatewayId
 +    args.write(self._oprot)
 +    self._oprot.writeMessageEnd()
 +    self._oprot.trans.flush()
 +
 +  def recv_getAllGroupsUserBelongs(self):
 +    iprot = self._iprot
 +    (fname, mtype, rseqid) = iprot.readMessageBegin()
 +    if mtype == TMessageType.EXCEPTION:
 +      x = TApplicationException()
 +      x.read(iprot)
 +      iprot.readMessageEnd()
 +      raise x
 +    result = getAllGroupsUserBelongs_result()
 +    result.read(iprot)
 +    iprot.readMessageEnd()
 +    if result.success is not None:
 +      return result.success
 +    if result.ire is not None:
 +      raise result.ire
 +    if result.ace is not None:
 +      raise result.ace
 +    if result.ase is not None:
 +      raise result.ase
 +    if result.ae is not None:
 +      raise result.ae
 +    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGroupsUserBelongs failed: unknown result")
 +
 +
 +class Processor(Iface, TProcessor):
 +  def __init__(self, handler):
 +    self._handler = handler
 +    self._processMap = {}
 +    self._processMap["getAPIVersion"] = Processor.process_getAPIVersion
 +    self._processMap["isUserExists"] = Processor.process_isUserExists
 +    self._processMap["addGateway"] = Processor.process_addGateway
 +    self._processMap["getAllUsersInGateway"] = Processor.process_getAllUsersInGateway
 +    self._processMap["updateGateway"] = Processor.process_updateGateway
 +    self._processMap["getGateway"] = Processor.process_getGateway
 +    self._processMap["deleteGateway"] = Processor.process_deleteGateway
 +    self._processMap["getAllGateways"] = Processor.process_getAllGateways
 +    self._processMap["isGatewayExist"] = Processor.process_isGatewayExist
 +    self._processMap["createNotification"] = Processor.process_createNotification
 +    self._processMap["updateNotification"] = Processor.process_updateNotification
 +    self._processMap["deleteNotification"] = Processor.process_deleteNotification
 +    self._processMap["getNotification"] = Processor.process_getNotification
 +    self._processMap["getAllNotifications"] = Processor.process_getAllNotifications
 +    self._processMap["generateAndRegisterSSHKeys"] = Processor.process_generateAndRegisterSSHKeys
 +    self._processMap["registerPwdCredential"] = Processor.process_registerPwdCredential
 +    self._processMap["getSSHPubKey"] = Processor.process_getSSHPubKey
 +    self._processMap["getAllGatewaySSHPubKeys"] = Processor.process_getAllGatewaySSHPubKeys
 +    self._processMap["getAllGatewayPWDCredentials"] = Processor.process_getAllGatewayPWDCredentials
 +    self._processMap["deleteSSHPubKey"] = Processor.process_deleteSSHPubKey
 +    self._processMap["deletePWDCredential"] = Processor.process_deletePWDCredential
 +    self._processMap["createProject"] = Processor.process_createProject
 +    self._processMap["updateProject"] = Processor.process_updateProject
 +    self._processMap["getProject"] = Processor.process_getProject
 +    self._processMap["deleteProject"] = Processor.process_deleteProject
 +    self._processMap["getUserProjects"] = Processor.process_getUserProjects
 +    self._processMap["searchProjects"] = Processor.process_searchProjects
 +    self._processMap["searchExperiments"] = Processor.process_searchExperiments
 +    self._processMap["getExperimentStatistics"] = Processor.process_getExperimentStatistics
 +    self._processMap["getExperimentsInProject"] = Processor.process_getExperimentsInProject
 +    self._processMap["getUserExperiments"] = Processor.process_getUserExperiments
 +    self._processMap["createExperiment"] = Processor.process_createExperiment
 +    self._processMap["deleteExperiment"] = Processor.process_deleteExperiment
 +    self._processMap["getExperiment"] = Processor.process_getExperiment
 +    self._processMap["getDetailedExperimentTree"] = Processor.process_getDetailedExperimentTree
 +    self._processMap["updateExperiment"] = Processor.process_updateExperiment
 +    self._processMap["updateExperimentConfiguration"] = Processor.process_updateExperimentConfiguration
 +    self._processMap["updateResourceScheduleing"] = Processor.process_updateResourceScheduleing
 +    self._processMap["validateExperiment"] = Processor.process_validateExperiment
 +    self._processMap["launchExperiment"] = Processor.process_launchExperiment
 +    self._processMap["getExperimentStatus"] = Processor.process_getExperimentStatus
 +    self._processMap["getExperimentOutputs"] = Processor.process_getExperimentOutputs
 +    self._processMap["getIntermediateOutputs"] = Processor.process_getIntermediateOutputs
 +    self._processMap["getJobStatuses"] = Processor.process_getJobStatuses
 +    self._processMap["getJobDetails"] = Processor.process_getJobDetails
 +    self._processMap["cloneExperiment"] = Processor.process_cloneExperiment
 +    self._processMap["terminateExperiment"] = Processor.process_terminateExperiment
 +    self._processMap["registerApplicationModule"] = Processor.process_registerApplicationModule
 +    self._processMap["getApplicationModule"] = Processor.process_getApplicationModule
 +    self._processMap["updateApplicationModule"] = Processor.process_updateApplicationModule
 +    self._processMap["getAllAppModules"] = Processor.process_getAllAppModules
 +    self._processMap["deleteApplicationModule"] = Processor.process_deleteApplicationModule
 +    self._processMap["registerApplicationDeployment"] = Processor.process_registerApplicationDeployment
 +    self._processMap["getApplicationDeployment"] = Processor.process_getApplicationDeployment
 +    self._processMap["updateApplicationDeployment"] = Processor.process_updateApplicationDeployment
 +    self._processMap["deleteApplicationDeployment"] = Processor.process_deleteApplicationDeployment
 +    self._processMap["getAllApplicationDeployments"] = Processor.process_getAllApplicationDeployments
 +    self._processMap["getAppModuleDeployedResources"] = Processor.process_getAppModuleDeployedResources
 +    self._processMap["registerApplicationInterface"] = Processor.process_registerApplicationInterface
 +    self._processMap["cloneApplicationInterface"] = Processor.process_cloneApplicationInterface
 +    self._processMap["getApplicationInterface"] = Processor.process_getApplicationInterface
 +    self._processMap["updateApplicationInterface"] = Processor.process_updateApplicationInterface
 +    self._processMap["deleteApplicationInterface"] = Processor.process_deleteApplicationInterface
 +    self._processMap["getAllApplicationInterfaceNames"] = Processor.process_getAllApplicationInterfaceNames
 +    self._processMap["getAllApplicationInterfaces"] = Processor.process_getAllApplicationInterfaces
 +    self._processMap["getApplicationInputs"] = Processor.process_getApplicationInputs
 +    self._processMap["getApplicationOutputs"] = Processor.process_getApplicationOutputs
 +    self._processMap["getAvailableAppInterfaceComputeResources"] = Processor.process_getAvailableAppInterfaceComputeResources
 +    self._processMap["registerComputeResource"] = Processor.process_registerComputeResource
 +    self._processMap["getComputeResource"] = Processor.process_getComputeResource
 +    self._processMap["getAllComputeResourceNames"] = Processor.process_getAllComputeResourceNames
 +    self._processMap["updateComputeResource"] = Processor.process_updateComputeResource
 +    self._processMap["deleteComputeResource"] = Processor.process_deleteComputeResource
 +    self._processMap["registerStorageResource"] = Processor.process_registerStorageResource
 +    self._processMap["getStorageResource"] = Processor.process_getStorageResource
 +    self._processMap["getAllStorageResourceNames"] = Processor.process_getAllStorageResourceNames
 +    self._processMap["updateStorageResource"] = Processor.process_updateStorageResource
 +    self._processMap["deleteStorageResource"] = Processor.process_deleteStorageResource
 +    self._processMap["addLocalSubmissionDetails"] = Processor.process_addLocalSubmissionDetails
 +    self._processMap["updateLocalSubmissionDetails"] = Processor.process_updateLocalSubmissionDetails
 +    self._processMap["getLocalJobSubmission"] = Processor.process_getLocalJobSubmission
 +    self._processMap["addSSHJobSubmissionDetails"] = Processor.process_addSSHJobSubmissionDetails
 +    self._processMap["addSSHForkJobSubmissionDetails"] = Processor.process_addSSHForkJobSubmissionDetails
 +    self._processMap["getSSHJobSubmission"] = Processor.process_getSSHJobSubmission
 +    self._processMap["addUNICOREJobSubmissionDetails"] = Processor.process_addUNICOREJobSubmissionDetails
 +    self._processMap["getUnicoreJobSubmission"] = Processor.process_getUnicoreJobSubmission
 +    self._processMap["addCloudJobSubmissionDetails"] = Processor.process_addCloudJobSubmissionDetails
 +    self._processMap["getCloudJobSubmission"] = Processor.process_getCloudJobSubmission
 +    self._processMap["updateSSHJobSubmissionDetails"] = Processor.process_updateSSHJobSubmissionDetails
 +    self._processMap["updateCloudJobSubmissionDetails"] = Processor.process_updateCloudJobSubmissionDetails
 +    self._processMap["updateUnicoreJobSubmissionDetails"] = Processor.process_updateUnicoreJobSubmissionDetails
 +    self._processMap["addLocalDataMovementDetails"] = Processor.process_addLocalDataMovementDetails
 +    self._processMap["updateLocalDataMovementDetails"] = Processor.process_updateLocalDataMovementDetails
 +    self._processMap["getLocalDataMovement"] = Processor.process_getLocalDataMovement
 +    self._processMap["addSCPDataMovementDetails"] = Processor.process_addSCPDataMovementDetails
 +    self._processMap["updateSCPDataMovementDetails"] = Processor.process_updateSCPDataMovementDetails
 +    self._processMap["getSCPDataMovement"] = Processor.process_getSCPDataMovement
 +    self._processMap["addUnicoreDataMovementDetails"] = Processor.process_addUnicoreDataMovementDetails
 +    self._processMap["updateUnicoreDataMovementDetails"] = Processor.process_updateUnicoreDataMovementDetails
 +    self._processMap["getUnicoreDataMovement"] = Processor.process_getUnicoreDataMovement
 +    self._processMap["addGridFTPDataMovementDetails"] = Processor.process_addGridFTPDataMovementDetails
 +    self._processMap["updateGridFTPDataMovementDetails"] = Processor.process_updateGridFTPDataMovementDetails
 +    self._processMap["getGridFTPDataMovement"] = Processor.process_getGridFTPDataMovement
 +    self._processMap["changeJobSubmissionPriority"] = Processor.process_changeJobSubmissionPriority
 +    self._processMap["changeDataMovementPriority"] = Processor.process_changeDataMovementPriority
 +    self._processMap["changeJobSubmissionPriorities"] = Processor.process_changeJobSubmissionPriorities
 +    self._processMap["changeDataMovementPriorities"] = Processor.process_changeDataMovementPriorities
 +    self._processMap["deleteJobSubmissionInterface"] = Processor.process_deleteJobSubmissionInterface
 +    self._processMap["deleteDataMovementInterface"] = Processor.process_deleteDataMovementInterface
 +    self._processMap["registerResourceJobManager"] = Processor.process_registerResourceJobManager
 +    self._processMap["updateResourceJobManager"] = Processor.process_updateResourceJobManager
 +    self._processMap["getResourceJobManager"] = Processor.process_getResourceJobManager
 +    self._processMap["deleteResourceJobManager"] = Processor.process_deleteResourceJobManager
 +    self._processMap["deleteBatchQueue"] = Processor.process_deleteBatchQueue
 +    self._processMap["registerGatewayResourceProfile"] = Processor.process_registerGatewayResourceProfile
 +    self._processMap["getGatewayResourceProfile"] = Processor.process_getGatewayResourceProfile
 +    self._processMap["updateGatewayResourceProfile"] = Processor.process_updateGatewayResourceProfile
 +    self._processMap["deleteGatewayResourceProfile"] = Processor.process_deleteGatewayResourceProfile
 +    self._processMap["addGatewayComputeResourcePreference"] = Processor.process_addGatewayComputeResourcePreference
 +    self._processMap["addGatewayStoragePreference"] = Processor.process_addGatewayStoragePreference
 +    self._processMap["getGatewayComputeResourcePreference"] = Processor.process_getGatewayComputeResourcePreference
 +    self._processMap["getGatewayStoragePreference"] = Processor.process_getGatewayStoragePreference
 +    self._processMap["getAllGatewayComputeResourcePreferences"] = Processor.process_getAllGatewayComputeResourcePreferences
 +    self._processMap["getAllGatewayStoragePreferences"] = Processor.process_getAllGatewayStoragePreferences
 +    self._processMap["getAllGatewayResourceProfiles"] = Processor.process_getAllGatewayResourceProfiles
 +    self._processMap["updateGatewayComputeResourcePreference"] = Processor.process_updateGatewayComputeResourcePreference
 +    self._processMap["updateGatewayStoragePreference"] = Processor.process_updateGatewayStoragePreference
 +    self._processMap["deleteGatewayComputeResourcePreference"] = Processor.process_deleteGatewayComputeResourcePreference
 +    self._processMap["deleteGatewayStoragePreference"] = Processor.process_deleteGatewayStoragePreference
 +    self._processMap["registerUserResourceProfile"] = Processor.process_registerUserResourceProfile
 +    self._processMap["getUserResourceProfile"] = Processor.process_getUserResourceProfile
 +    self._processMap["updateUserResourceProfile"] = Processor.process_updateUserResourceProfile
 +    self._processMap["deleteUserResourceProfile"] = Processor.process_deleteUserResourceProfile
 +    self._processMap["addUserComputeResourcePreference"] = Processor.process_addUserComputeResourcePreference
 +    self._processMap["addUserStoragePreference"] = Processor.process_addUserStoragePreference
 +    self._processMap["getUserComputeResourcePreference"] = Processor.process_getUserComputeResourcePreference
 +    self._processMap["getUserStoragePreference"] = Processor.process_getUserStoragePreference
 +    self._processMap["getAllUserResourceProfiles"] = Processor.process_getAllUserResourceProfiles
 +    self._processMap["updateUserComputeResourcePreference"] = Processor.process_updateUserComputeResourcePreference
 +    self._processMap["updateUserStoragePreference"] = Processor.process_updateUserStoragePreference
 +    self._processMap["deleteUserComputeResourcePreference"] = Processor.process_deleteUserComputeResourcePreference
 +    self._processMap["deleteUserStoragePreference"] = Processor.process_deleteUserStoragePreference
 +    self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
 +    self._processMap["getWorkflow"] = Processor.process_getWorkflow
 +    self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
 +    self._processMap["registerWorkflow"] = Processor.process_registerWorkflow
 +    self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
 +    self._processMap["getWorkflowTemplateId"] = Processor.process_getWorkflowTemplateId
 +    self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
 +    self._processMap["registerDataProduct"] = Processor.process_registerDataProduct
 +    self._processMap["getDataProduct"] = Processor.process_getDataProduct
 +    self._processMap["registerReplicaLocation"] = Processor.process_registerReplicaLocation
 +    self._processMap["getParentDataProduct"] = Processor.process_getParentDataProduct
 +    self._processMap["getChildDataProducts"] = Processor.process_getChildDataProducts
 +    self._processMap["shareResourceWithUsers"] = Processor.process_shareResourceWithUsers
 +    self._processMap["revokeSharingOfResourceFromUsers"] = Processor.process_revokeSharingOfResourceFromUsers
 +    self._processMap["getAllAccessibleUsers"] = Processor.process_getAllAccessibleUsers
 +    self._processMap["createGroup"] = Processor.process_createGroup
 +    self._processMap["updateGroup"] = Processor.process_updateGroup
 +    self._processMap["deleteGroup"] = Processor.process_deleteGroup
 +    self._processMap["getGroup"] = Processor.process_getGroup
 +    self._processMap["getAllGroupsUserBelongs"] = Processor.process_getAllGroupsUserBelongs
 +
 +  def process(self, iprot, oprot):
 +    (name, type, seqid) = iprot.readMessageBegin()
 +    if name not in self._processMap:
 +      iprot.skip(TType.STRUCT)
 +      iprot.readMessageEnd()
 +      x = TApplicationException(TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % (name))
 +      oprot.writeMessageBegin(name, TMessageType.EXCEPTION, seqid)
 +      x.write(oprot)
 +      oprot.writeMessageEnd()
 +      oprot.trans.flush()
 +      return
 +    else:
 +      self._processMap[name](self, seqid, iprot, oprot)
 +    return True
 +
 +  def process_getAPIVersion(self, seqid, iprot, oprot):
 +    args = getAPIVersion_args()
      args.read(iprot)
      iprot.readMessageEnd()
 -    result = getAllGatewayPWDCredentials_result()
 +    result = getAPIVersion_result()
      try:
 -      result.success = self._handler.getAllGatewayPWDCredentials(args.authzToken, args.gatewayId)
 +      result.success = self._handler.getAPIVersion(args.authzToken)
        msg_type = TMessageType.REPLY
      except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
        raise
@@@ -16162,2725 -15495,227 +16357,2759 @@@
      oprot.writeMessageEnd()
      oprot.trans.flush()
  
 -  def process_getAllAccessibleUsers(self, seqid, iprot, oprot):
 -    args = getAllAccessibleUsers_args()
 -    args.read(iprot)
 -    iprot.readMessageEnd()
 -    result = getAllAccessibleUsers_result()
 -    try:
 -      result.success = self._handler.getAllAccessibleUsers(args.authzToken, args.resourceId, args.resourceType, args.permissionType)
 -      msg_type = TMessageType.REPLY
 -    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 -      raise
 -    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 -      msg_type = TMessageType.REPLY
 -      result.ire = ire
 -    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 -      msg_type = TMessageType.REPLY
 -      result.ace = ace
 -    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 -      msg_type = TMessageType.REPLY
 -      result.ase = ase
 -    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 -      msg_type = TMessageType.REPLY
 -      result.ae = ae
 -    except Exception as ex:
 -      msg_type = TMessageType.EXCEPTION
 -      logging.exception(ex)
 -      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 -    oprot.writeMessageBegin("getAllAccessibleUsers", msg_type, seqid)
 -    result.write(oprot)
 -    oprot.writeMessageEnd()
 -    oprot.trans.flush()
 +  def process_addUserStoragePreference(self, seqid, iprot, oprot):
 +    args = addUserStoragePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = addUserStoragePreference_result()
 +    try:
 +      result.success = self._handler.addUserStoragePreference(args.authzToken, args.userId, args.storageResourceId, args.storagePreference)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("addUserStoragePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_getUserComputeResourcePreference(self, seqid, iprot, oprot):
 +    args = getUserComputeResourcePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = getUserComputeResourcePreference_result()
 +    try:
 +      result.success = self._handler.getUserComputeResourcePreference(args.authzToken, args.userId, args.computeResourceId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("getUserComputeResourcePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_getUserStoragePreference(self, seqid, iprot, oprot):
 +    args = getUserStoragePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = getUserStoragePreference_result()
 +    try:
 +      result.success = self._handler.getUserStoragePreference(args.authzToken, args.userId, args.storageResourceId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("getUserStoragePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_getAllUserResourceProfiles(self, seqid, iprot, oprot):
 +    args = getAllUserResourceProfiles_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = getAllUserResourceProfiles_result()
 +    try:
 +      result.success = self._handler.getAllUserResourceProfiles(args.authzToken)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("getAllUserResourceProfiles", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_updateUserComputeResourcePreference(self, seqid, iprot, oprot):
 +    args = updateUserComputeResourcePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = updateUserComputeResourcePreference_result()
 +    try:
 +      result.success = self._handler.updateUserComputeResourcePreference(args.authzToken, args.userId, args.computeResourceId, args.computeResourcePreference)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("updateUserComputeResourcePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_updateUserStoragePreference(self, seqid, iprot, oprot):
 +    args = updateUserStoragePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = updateUserStoragePreference_result()
 +    try:
 +      result.success = self._handler.updateUserStoragePreference(args.authzToken, args.userId, args.storageId, args.storagePreference)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("updateUserStoragePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_deleteUserComputeResourcePreference(self, seqid, iprot, oprot):
 +    args = deleteUserComputeResourcePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = deleteUserComputeResourcePreference_result()
 +    try:
 +      result.success = self._handler.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.computeResourceId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("deleteUserComputeResourcePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_deleteUserStoragePreference(self, seqid, iprot, oprot):
 +    args = deleteUserStoragePreference_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = deleteUserStoragePreference_result()
 +    try:
 +      result.success = self._handler.deleteUserStoragePreference(args.authzToken, args.userId, args.storageId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("deleteUserStoragePreference", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_getAllWorkflows(self, seqid, iprot, oprot):
 +    args = getAllWorkflows_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = getAllWorkflows_result()
 +    try:
 +      result.success = self._handler.getAllWorkflows(args.authzToken, args.gatewayId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("getAllWorkflows", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_getWorkflow(self, seqid, iprot, oprot):
 +    args = getWorkflow_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = getWorkflow_result()
 +    try:
 +      result.success = self._handler.getWorkflow(args.authzToken, args.workflowTemplateId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
 +    oprot.writeMessageBegin("getWorkflow", msg_type, seqid)
 +    result.write(oprot)
 +    oprot.writeMessageEnd()
 +    oprot.trans.flush()
 +
 +  def process_deleteWorkflow(self, seqid, iprot, oprot):
 +    args = deleteWorkflow_args()
 +    args.read(iprot)
 +    iprot.readMessageEnd()
 +    result = deleteWorkflow_result()
 +    try:
 +      self._handler.deleteWorkflow(args.authzToken, args.workflowTemplateId)
 +      msg_type = TMessageType.REPLY
 +    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
 +      raise
 +    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
 +      msg_type = TMessageType.REPLY
 +      result.ire = ire
 +    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
 +      msg_type = TMessageType.REPLY
 +      result.ace = ace
 +    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
 +      msg_type = TMessageType.REPLY
 +      result.ase = ase
 +    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
 +      msg_type = TMessageType.REPLY
 +      result.ae = ae
 +    except Exception as ex:
 +      msg_type = TMessageType.EXCEPTION
 +      logging.exception(ex)
 +      result = TApplicationException(TApplic

<TRUNCATED>

[24/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
index 4da27d6,4da27d6..7ce8d30
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/ComponentStatus.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ComponentStatus implements org.apache.thrift.TBase<ComponentStatus, ComponentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ComponentStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComponentStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
index 949692b,949692b..0794855
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/EdgeModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class EdgeModel implements org.apache.thrift.TBase<EdgeModel, EdgeModel._Fields>, java.io.Serializable, Cloneable, Comparable<EdgeModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EdgeModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
index ea24faa,ea24faa..4983a61
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/NodeModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class NodeModel implements org.apache.thrift.TBase<NodeModel, NodeModel._Fields>, java.io.Serializable, Cloneable, Comparable<NodeModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
index 54b3391,54b3391..c23baa6
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/PortModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class PortModel implements org.apache.thrift.TBase<PortModel, PortModel._Fields>, java.io.Serializable, Cloneable, Comparable<PortModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PortModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
index ba6569c,ba6569c..9c8f1aa
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class WorkflowModel implements org.apache.thrift.TBase<WorkflowModel, WorkflowModel._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
index deadf51,deadf51..9a33712
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/WorkflowStatus.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class WorkflowStatus implements org.apache.thrift.TBase<WorkflowStatus, WorkflowStatus._Fields>, java.io.Serializable, Cloneable, Comparable<WorkflowStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WorkflowStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
index 63e3882,63e3882..12fa1c5
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationDeploymentDescription.java
@@@ -77,7 -77,7 +77,7 @@@ import org.slf4j.LoggerFactory
   *  assigns to the environment variable "NAME" the value
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ApplicationDeploymentDescription implements org.apache.thrift.TBase<ApplicationDeploymentDescription, ApplicationDeploymentDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationDeploymentDescription> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationDeploymentDescription");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
index f574e9a,f574e9a..d00ce8c
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/ApplicationModule.java
@@@ -66,7 -66,7 +66,7 @@@ import org.slf4j.LoggerFactory
   *    Descriprion of the Module
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ApplicationModule implements org.apache.thrift.TBase<ApplicationModule, ApplicationModule._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationModule> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationModule");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
index 45df73d,45df73d..32b5b09
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/CommandObject.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * commandOrder:
   *   Order of the command in the multiple command situation
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class CommandObject implements org.apache.thrift.TBase<CommandObject, CommandObject._Fields>, java.io.Serializable, Cloneable, Comparable<CommandObject> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CommandObject");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
index 392cc9e,392cc9e..a750bba
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appdeployment/SetEnvPaths.java
@@@ -63,7 -63,7 +63,7 @@@ import org.slf4j.LoggerFactory
   * envPathOrder:
   *   The order of the setting of the env variables when there are multiple env variables
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class SetEnvPaths implements org.apache.thrift.TBase<SetEnvPaths, SetEnvPaths._Fields>, java.io.Serializable, Cloneable, Comparable<SetEnvPaths> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetEnvPaths");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
index e832256,e832256..82c2c3e
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/ApplicationInterfaceDescription.java
@@@ -64,7 -64,7 +64,7 @@@ import org.slf4j.LoggerFactory
   *   Outputs generated from the application
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ApplicationInterfaceDescription implements org.apache.thrift.TBase<ApplicationInterfaceDescription, ApplicationInterfaceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ApplicationInterfaceDescription> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ApplicationInterfaceDescription");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index d888905,d888905..22c9222
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@@ -57,7 -57,7 +57,7 @@@ import org.slf4j.LoggerFactory
   * maxRunTime:
   *  Maximum allowed run time in hours.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class BatchQueue implements org.apache.thrift.TBase<BatchQueue, BatchQueue._Fields>, java.io.Serializable, Cloneable, Comparable<BatchQueue> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BatchQueue");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
index 7d540de,7d540de..c2cf1e0
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/CloudJobSubmission.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class CloudJobSubmission implements org.apache.thrift.TBase<CloudJobSubmission, CloudJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<CloudJobSubmission> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CloudJobSubmission");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
index c1dd4f9,c1dd4f9..f52bd08
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ComputeResourceDescription.java
@@@ -80,7 -80,7 +80,7 @@@ import org.slf4j.LoggerFactory
   *  Map of file systems type and the path.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ComputeResourceDescription implements org.apache.thrift.TBase<ComputeResourceDescription, ComputeResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourceDescription> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourceDescription");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
index 70b7644,70b7644..bc81a02
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/GlobusJobSubmission.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class GlobusJobSubmission implements org.apache.thrift.TBase<GlobusJobSubmission, GlobusJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<GlobusJobSubmission> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GlobusJobSubmission");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
index b83cc4e,b83cc4e..c2b9e63
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/JobSubmissionInterface.java
@@@ -61,7 -61,7 +61,7 @@@ import org.slf4j.LoggerFactory
   *   Lower the numerical number, higher the priority
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobSubmissionInterface implements org.apache.thrift.TBase<JobSubmissionInterface, JobSubmissionInterface._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionInterface> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionInterface");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
index 6a08e19,6a08e19..bea1578
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/LOCALSubmission.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * sshPort:
   *  If a non-default port needs to used, specify it.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class LOCALSubmission implements org.apache.thrift.TBase<LOCALSubmission, LOCALSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<LOCALSubmission> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LOCALSubmission");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
index bca1b6f,bca1b6f..068e601
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/ResourceJobManager.java
@@@ -68,7 -68,7 +68,7 @@@ import org.slf4j.LoggerFactory
   *  An enumeration of commonly used manager commands.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ResourceJobManager implements org.apache.thrift.TBase<ResourceJobManager, ResourceJobManager._Fields>, java.io.Serializable, Cloneable, Comparable<ResourceJobManager> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ResourceJobManager");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
index 8a9007a,8a9007a..c6345e7
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/SSHJobSubmission.java
@@@ -67,7 -67,7 +67,7 @@@ import org.slf4j.LoggerFactory
   *    the same. Example: *@*.example.com or *@example.com
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class SSHJobSubmission implements org.apache.thrift.TBase<SSHJobSubmission, SSHJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<SSHJobSubmission> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SSHJobSubmission");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
index 1d367fb,1d367fb..bd506bf
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/UnicoreJobSubmission.java
@@@ -59,7 -59,7 +59,7 @@@ import org.slf4j.LoggerFactory
   * authenticationMode
   *  The authenticationMode defines the way certificate is fetched.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class UnicoreJobSubmission implements org.apache.thrift.TBase<UnicoreJobSubmission, UnicoreJobSubmission._Fields>, java.io.Serializable, Cloneable, Comparable<UnicoreJobSubmission> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UnicoreJobSubmission");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index b1c092b,b1c092b..8d7812c
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@@ -85,7 -85,7 +85,7 @@@ import org.slf4j.LoggerFactory
   *   default credential store.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ComputeResourcePreference implements org.apache.thrift.TBase<ComputeResourcePreference, ComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<ComputeResourcePreference> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputeResourcePreference");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
index 31f33f6,31f33f6..9be1c5e
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/GatewayResourceProfile.java
@@@ -68,7 -68,7 +68,7 @@@ import org.slf4j.LoggerFactory
   *  identityServerPwdCredToken:
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class GatewayResourceProfile implements org.apache.thrift.TBase<GatewayResourceProfile, GatewayResourceProfile._Fields>, java.io.Serializable, Cloneable, Comparable<GatewayResourceProfile> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GatewayResourceProfile");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
index 9c274d6,9c274d6..50040ca
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/StoragePreference.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class StoragePreference implements org.apache.thrift.TBase<StoragePreference, StoragePreference._Fields>, java.io.Serializable, Cloneable, Comparable<StoragePreference> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StoragePreference");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
index 1499cd8,1499cd8..c6f7b85
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/storageresource/StorageResourceDescription.java
@@@ -68,7 -68,7 +68,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class StorageResourceDescription implements org.apache.thrift.TBase<StorageResourceDescription, StorageResourceDescription._Fields>, java.io.Serializable, Cloneable, Comparable<StorageResourceDescription> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("StorageResourceDescription");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
index 276b7ca,0000000..399083b
mode 100644,000000..100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
@@@ -1,1381 -1,0 +1,1381 @@@
 +/**
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + */
 +
 +/**
 + * Autogenerated by Thrift Compiler (0.9.3)
 + *
 + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 + *  @generated
 + */
 +package org.apache.airavata.model.appcatalog.userresourceprofile;
 +
 +import org.apache.thrift.scheme.IScheme;
 +import org.apache.thrift.scheme.SchemeFactory;
 +import org.apache.thrift.scheme.StandardScheme;
 +
 +import org.apache.thrift.scheme.TupleScheme;
 +import org.apache.thrift.protocol.TTupleProtocol;
 +import org.apache.thrift.protocol.TProtocolException;
 +import org.apache.thrift.EncodingUtils;
 +import org.apache.thrift.TException;
 +import org.apache.thrift.async.AsyncMethodCallback;
 +import org.apache.thrift.server.AbstractNonblockingServer.*;
 +import java.util.List;
 +import java.util.ArrayList;
 +import java.util.Map;
 +import java.util.HashMap;
 +import java.util.EnumMap;
 +import java.util.Set;
 +import java.util.HashSet;
 +import java.util.EnumSet;
 +import java.util.Collections;
 +import java.util.BitSet;
 +import java.nio.ByteBuffer;
 +import java.util.Arrays;
 +import javax.annotation.Generated;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 +/**
 + * User specific preferences for a Computer Resource
 + * 
 + * computeResourceId:
 + *   Corelate the preference to a compute resource.
 + * 
 + * 
 + * loginUserName:
 + *   If turned true, Airavata will override the preferences of better alternatives exist.
 + * 
 + * 
 + * preferredBatchQueue:
 + *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
 + * 
 + * scratchLocation:
 + *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
 + * 
 + * allocationProjectNumber:
 + *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
 + *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
 + *    account to be used has to be added to the allocation.
 + * 
 + * resourceSpecificCredentialStoreToken:
 + *  Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
 + *   default credential store.
 + * 
 + */
- @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
 +public class UserComputeResourcePreference implements org.apache.thrift.TBase<UserComputeResourcePreference, UserComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserComputeResourcePreference> {
 +  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserComputeResourcePreference");
 +
 +  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
 +  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
 +  private static final org.apache.thrift.protocol.TField PREFERRED_BATCH_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredBatchQueue", org.apache.thrift.protocol.TType.STRING, (short)3);
 +  private static final org.apache.thrift.protocol.TField SCRATCH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("scratchLocation", org.apache.thrift.protocol.TType.STRING, (short)4);
 +  private static final org.apache.thrift.protocol.TField ALLOCATION_PROJECT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("allocationProjectNumber", org.apache.thrift.protocol.TType.STRING, (short)5);
 +  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)6);
 +  private static final org.apache.thrift.protocol.TField QUALITY_OF_SERVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("qualityOfService", org.apache.thrift.protocol.TType.STRING, (short)7);
 +  private static final org.apache.thrift.protocol.TField RESERVATION_FIELD_DESC = new org.apache.thrift.protocol.TField("reservation", org.apache.thrift.protocol.TType.STRING, (short)8);
 +  private static final org.apache.thrift.protocol.TField RESERVATION_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationStartTime", org.apache.thrift.protocol.TType.I64, (short)9);
 +  private static final org.apache.thrift.protocol.TField RESERVATION_END_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationEndTime", org.apache.thrift.protocol.TType.I64, (short)10);
 +
 +  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
 +  static {
 +    schemes.put(StandardScheme.class, new UserComputeResourcePreferenceStandardSchemeFactory());
 +    schemes.put(TupleScheme.class, new UserComputeResourcePreferenceTupleSchemeFactory());
 +  }
 +
 +  private String computeResourceId; // required
 +  private String loginUserName; // optional
 +  private String preferredBatchQueue; // optional
 +  private String scratchLocation; // optional
 +  private String allocationProjectNumber; // optional
 +  private String resourceSpecificCredentialStoreToken; // optional
 +  private String qualityOfService; // optional
 +  private String reservation; // optional
 +  private long reservationStartTime; // optional
 +  private long reservationEndTime; // optional
 +
 +  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
 +  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
 +    COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
 +    LOGIN_USER_NAME((short)2, "loginUserName"),
 +    PREFERRED_BATCH_QUEUE((short)3, "preferredBatchQueue"),
 +    SCRATCH_LOCATION((short)4, "scratchLocation"),
 +    ALLOCATION_PROJECT_NUMBER((short)5, "allocationProjectNumber"),
 +    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)6, "resourceSpecificCredentialStoreToken"),
 +    QUALITY_OF_SERVICE((short)7, "qualityOfService"),
 +    RESERVATION((short)8, "reservation"),
 +    RESERVATION_START_TIME((short)9, "reservationStartTime"),
 +    RESERVATION_END_TIME((short)10, "reservationEndTime");
 +
 +    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 +
 +    static {
 +      for (_Fields field : 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: // COMPUTE_RESOURCE_ID
 +          return COMPUTE_RESOURCE_ID;
 +        case 2: // LOGIN_USER_NAME
 +          return LOGIN_USER_NAME;
 +        case 3: // PREFERRED_BATCH_QUEUE
 +          return PREFERRED_BATCH_QUEUE;
 +        case 4: // SCRATCH_LOCATION
 +          return SCRATCH_LOCATION;
 +        case 5: // ALLOCATION_PROJECT_NUMBER
 +          return ALLOCATION_PROJECT_NUMBER;
 +        case 6: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
 +          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
 +        case 7: // QUALITY_OF_SERVICE
 +          return QUALITY_OF_SERVICE;
 +        case 8: // RESERVATION
 +          return RESERVATION;
 +        case 9: // RESERVATION_START_TIME
 +          return RESERVATION_START_TIME;
 +        case 10: // RESERVATION_END_TIME
 +          return RESERVATION_END_TIME;
 +        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!");
 +      return fields;
 +    }
 +
 +    /**
 +     * Find the _Fields constant that matches name, or null if its not found.
 +     */
 +    public static _Fields findByName(String name) {
 +      return byName.get(name);
 +    }
 +
 +    private final short _thriftId;
 +    private final String _fieldName;
 +
 +    _Fields(short thriftId, String fieldName) {
 +      _thriftId = thriftId;
 +      _fieldName = fieldName;
 +    }
 +
 +    public short getThriftFieldId() {
 +      return _thriftId;
 +    }
 +
 +    public String getFieldName() {
 +      return _fieldName;
 +    }
 +  }
 +
 +  // isset id assignments
 +  private static final int __RESERVATIONSTARTTIME_ISSET_ID = 0;
 +  private static final int __RESERVATIONENDTIME_ISSET_ID = 1;
 +  private byte __isset_bitfield = 0;
 +  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN,_Fields.QUALITY_OF_SERVICE,_Fields.RESERVATION,_Fields.RESERVATION_START_TIME,_Fields.RESERVATION_END_TIME};
 +  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
 +  static {
 +    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
 +    tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.PREFERRED_BATCH_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("preferredBatchQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.SCRATCH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("scratchLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.ALLOCATION_PROJECT_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("allocationProjectNumber", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.QUALITY_OF_SERVICE, new org.apache.thrift.meta_data.FieldMetaData("qualityOfService", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.RESERVATION, new org.apache.thrift.meta_data.FieldMetaData("reservation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
 +    tmpMap.put(_Fields.RESERVATION_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationStartTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
 +    tmpMap.put(_Fields.RESERVATION_END_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationEndTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
 +        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
 +    metaDataMap = Collections.unmodifiableMap(tmpMap);
 +    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserComputeResourcePreference.class, metaDataMap);
 +  }
 +
 +  public UserComputeResourcePreference() {
 +  }
 +
 +  public UserComputeResourcePreference(
 +    String computeResourceId)
 +  {
 +    this();
 +    this.computeResourceId = computeResourceId;
 +  }
 +
 +  /**
 +   * Performs a deep copy on <i>other</i>.
 +   */
 +  public UserComputeResourcePreference(UserComputeResourcePreference other) {
 +    __isset_bitfield = other.__isset_bitfield;
 +    if (other.isSetComputeResourceId()) {
 +      this.computeResourceId = other.computeResourceId;
 +    }
 +    if (other.isSetLoginUserName()) {
 +      this.loginUserName = other.loginUserName;
 +    }
 +    if (other.isSetPreferredBatchQueue()) {
 +      this.preferredBatchQueue = other.preferredBatchQueue;
 +    }
 +    if (other.isSetScratchLocation()) {
 +      this.scratchLocation = other.scratchLocation;
 +    }
 +    if (other.isSetAllocationProjectNumber()) {
 +      this.allocationProjectNumber = other.allocationProjectNumber;
 +    }
 +    if (other.isSetResourceSpecificCredentialStoreToken()) {
 +      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
 +    }
 +    if (other.isSetQualityOfService()) {
 +      this.qualityOfService = other.qualityOfService;
 +    }
 +    if (other.isSetReservation()) {
 +      this.reservation = other.reservation;
 +    }
 +    this.reservationStartTime = other.reservationStartTime;
 +    this.reservationEndTime = other.reservationEndTime;
 +  }
 +
 +  public UserComputeResourcePreference deepCopy() {
 +    return new UserComputeResourcePreference(this);
 +  }
 +
 +  @Override
 +  public void clear() {
 +    this.computeResourceId = null;
 +    this.loginUserName = null;
 +    this.preferredBatchQueue = null;
 +    this.scratchLocation = null;
 +    this.allocationProjectNumber = null;
 +    this.resourceSpecificCredentialStoreToken = null;
 +    this.qualityOfService = null;
 +    this.reservation = null;
 +    setReservationStartTimeIsSet(false);
 +    this.reservationStartTime = 0;
 +    setReservationEndTimeIsSet(false);
 +    this.reservationEndTime = 0;
 +  }
 +
 +  public String getComputeResourceId() {
 +    return this.computeResourceId;
 +  }
 +
 +  public void setComputeResourceId(String computeResourceId) {
 +    this.computeResourceId = computeResourceId;
 +  }
 +
 +  public void unsetComputeResourceId() {
 +    this.computeResourceId = null;
 +  }
 +
 +  /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
 +  public boolean isSetComputeResourceId() {
 +    return this.computeResourceId != null;
 +  }
 +
 +  public void setComputeResourceIdIsSet(boolean value) {
 +    if (!value) {
 +      this.computeResourceId = null;
 +    }
 +  }
 +
 +  public String getLoginUserName() {
 +    return this.loginUserName;
 +  }
 +
 +  public void setLoginUserName(String loginUserName) {
 +    this.loginUserName = loginUserName;
 +  }
 +
 +  public void unsetLoginUserName() {
 +    this.loginUserName = null;
 +  }
 +
 +  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
 +  public boolean isSetLoginUserName() {
 +    return this.loginUserName != null;
 +  }
 +
 +  public void setLoginUserNameIsSet(boolean value) {
 +    if (!value) {
 +      this.loginUserName = null;
 +    }
 +  }
 +
 +  public String getPreferredBatchQueue() {
 +    return this.preferredBatchQueue;
 +  }
 +
 +  public void setPreferredBatchQueue(String preferredBatchQueue) {
 +    this.preferredBatchQueue = preferredBatchQueue;
 +  }
 +
 +  public void unsetPreferredBatchQueue() {
 +    this.preferredBatchQueue = null;
 +  }
 +
 +  /** Returns true if field preferredBatchQueue is set (has been assigned a value) and false otherwise */
 +  public boolean isSetPreferredBatchQueue() {
 +    return this.preferredBatchQueue != null;
 +  }
 +
 +  public void setPreferredBatchQueueIsSet(boolean value) {
 +    if (!value) {
 +      this.preferredBatchQueue = null;
 +    }
 +  }
 +
 +  public String getScratchLocation() {
 +    return this.scratchLocation;
 +  }
 +
 +  public void setScratchLocation(String scratchLocation) {
 +    this.scratchLocation = scratchLocation;
 +  }
 +
 +  public void unsetScratchLocation() {
 +    this.scratchLocation = null;
 +  }
 +
 +  /** Returns true if field scratchLocation is set (has been assigned a value) and false otherwise */
 +  public boolean isSetScratchLocation() {
 +    return this.scratchLocation != null;
 +  }
 +
 +  public void setScratchLocationIsSet(boolean value) {
 +    if (!value) {
 +      this.scratchLocation = null;
 +    }
 +  }
 +
 +  public String getAllocationProjectNumber() {
 +    return this.allocationProjectNumber;
 +  }
 +
 +  public void setAllocationProjectNumber(String allocationProjectNumber) {
 +    this.allocationProjectNumber = allocationProjectNumber;
 +  }
 +
 +  public void unsetAllocationProjectNumber() {
 +    this.allocationProjectNumber = null;
 +  }
 +
 +  /** Returns true if field allocationProjectNumber is set (has been assigned a value) and false otherwise */
 +  public boolean isSetAllocationProjectNumber() {
 +    return this.allocationProjectNumber != null;
 +  }
 +
 +  public void setAllocationProjectNumberIsSet(boolean value) {
 +    if (!value) {
 +      this.allocationProjectNumber = null;
 +    }
 +  }
 +
 +  public String getResourceSpecificCredentialStoreToken() {
 +    return this.resourceSpecificCredentialStoreToken;
 +  }
 +
 +  public void setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
 +    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
 +  }
 +
 +  public void unsetResourceSpecificCredentialStoreToken() {
 +    this.resourceSpecificCredentialStoreToken = null;
 +  }
 +
 +  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
 +  public boolean isSetResourceSpecificCredentialStoreToken() {
 +    return this.resourceSpecificCredentialStoreToken != null;
 +  }
 +
 +  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
 +    if (!value) {
 +      this.resourceSpecificCredentialStoreToken = null;
 +    }
 +  }
 +
 +  public String getQualityOfService() {
 +    return this.qualityOfService;
 +  }
 +
 +  public void setQualityOfService(String qualityOfService) {
 +    this.qualityOfService = qualityOfService;
 +  }
 +
 +  public void unsetQualityOfService() {
 +    this.qualityOfService = null;
 +  }
 +
 +  /** Returns true if field qualityOfService is set (has been assigned a value) and false otherwise */
 +  public boolean isSetQualityOfService() {
 +    return this.qualityOfService != null;
 +  }
 +
 +  public void setQualityOfServiceIsSet(boolean value) {
 +    if (!value) {
 +      this.qualityOfService = null;
 +    }
 +  }
 +
 +  public String getReservation() {
 +    return this.reservation;
 +  }
 +
 +  public void setReservation(String reservation) {
 +    this.reservation = reservation;
 +  }
 +
 +  public void unsetReservation() {
 +    this.reservation = null;
 +  }
 +
 +  /** Returns true if field reservation is set (has been assigned a value) and false otherwise */
 +  public boolean isSetReservation() {
 +    return this.reservation != null;
 +  }
 +
 +  public void setReservationIsSet(boolean value) {
 +    if (!value) {
 +      this.reservation = null;
 +    }
 +  }
 +
 +  public long getReservationStartTime() {
 +    return this.reservationStartTime;
 +  }
 +
 +  public void setReservationStartTime(long reservationStartTime) {
 +    this.reservationStartTime = reservationStartTime;
 +    setReservationStartTimeIsSet(true);
 +  }
 +
 +  public void unsetReservationStartTime() {
 +    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
 +  }
 +
 +  /** Returns true if field reservationStartTime is set (has been assigned a value) and false otherwise */
 +  public boolean isSetReservationStartTime() {
 +    return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
 +  }
 +
 +  public void setReservationStartTimeIsSet(boolean value) {
 +    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID, value);
 +  }
 +
 +  public long getReservationEndTime() {
 +    return this.reservationEndTime;
 +  }
 +
 +  public void setReservationEndTime(long reservationEndTime) {
 +    this.reservationEndTime = reservationEndTime;
 +    setReservationEndTimeIsSet(true);
 +  }
 +
 +  public void unsetReservationEndTime() {
 +    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
 +  }
 +
 +  /** Returns true if field reservationEndTime is set (has been assigned a value) and false otherwise */
 +  public boolean isSetReservationEndTime() {
 +    return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
 +  }
 +
 +  public void setReservationEndTimeIsSet(boolean value) {
 +    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID, value);
 +  }
 +
 +  public void setFieldValue(_Fields field, Object value) {
 +    switch (field) {
 +    case COMPUTE_RESOURCE_ID:
 +      if (value == null) {
 +        unsetComputeResourceId();
 +      } else {
 +        setComputeResourceId((String)value);
 +      }
 +      break;
 +
 +    case LOGIN_USER_NAME:
 +      if (value == null) {
 +        unsetLoginUserName();
 +      } else {
 +        setLoginUserName((String)value);
 +      }
 +      break;
 +
 +    case PREFERRED_BATCH_QUEUE:
 +      if (value == null) {
 +        unsetPreferredBatchQueue();
 +      } else {
 +        setPreferredBatchQueue((String)value);
 +      }
 +      break;
 +
 +    case SCRATCH_LOCATION:
 +      if (value == null) {
 +        unsetScratchLocation();
 +      } else {
 +        setScratchLocation((String)value);
 +      }
 +      break;
 +
 +    case ALLOCATION_PROJECT_NUMBER:
 +      if (value == null) {
 +        unsetAllocationProjectNumber();
 +      } else {
 +        setAllocationProjectNumber((String)value);
 +      }
 +      break;
 +
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      if (value == null) {
 +        unsetResourceSpecificCredentialStoreToken();
 +      } else {
 +        setResourceSpecificCredentialStoreToken((String)value);
 +      }
 +      break;
 +
 +    case QUALITY_OF_SERVICE:
 +      if (value == null) {
 +        unsetQualityOfService();
 +      } else {
 +        setQualityOfService((String)value);
 +      }
 +      break;
 +
 +    case RESERVATION:
 +      if (value == null) {
 +        unsetReservation();
 +      } else {
 +        setReservation((String)value);
 +      }
 +      break;
 +
 +    case RESERVATION_START_TIME:
 +      if (value == null) {
 +        unsetReservationStartTime();
 +      } else {
 +        setReservationStartTime((Long)value);
 +      }
 +      break;
 +
 +    case RESERVATION_END_TIME:
 +      if (value == null) {
 +        unsetReservationEndTime();
 +      } else {
 +        setReservationEndTime((Long)value);
 +      }
 +      break;
 +
 +    }
 +  }
 +
 +  public Object getFieldValue(_Fields field) {
 +    switch (field) {
 +    case COMPUTE_RESOURCE_ID:
 +      return getComputeResourceId();
 +
 +    case LOGIN_USER_NAME:
 +      return getLoginUserName();
 +
 +    case PREFERRED_BATCH_QUEUE:
 +      return getPreferredBatchQueue();
 +
 +    case SCRATCH_LOCATION:
 +      return getScratchLocation();
 +
 +    case ALLOCATION_PROJECT_NUMBER:
 +      return getAllocationProjectNumber();
 +
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      return getResourceSpecificCredentialStoreToken();
 +
 +    case QUALITY_OF_SERVICE:
 +      return getQualityOfService();
 +
 +    case RESERVATION:
 +      return getReservation();
 +
 +    case RESERVATION_START_TIME:
 +      return getReservationStartTime();
 +
 +    case RESERVATION_END_TIME:
 +      return getReservationEndTime();
 +
 +    }
 +    throw new 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();
 +    }
 +
 +    switch (field) {
 +    case COMPUTE_RESOURCE_ID:
 +      return isSetComputeResourceId();
 +    case LOGIN_USER_NAME:
 +      return isSetLoginUserName();
 +    case PREFERRED_BATCH_QUEUE:
 +      return isSetPreferredBatchQueue();
 +    case SCRATCH_LOCATION:
 +      return isSetScratchLocation();
 +    case ALLOCATION_PROJECT_NUMBER:
 +      return isSetAllocationProjectNumber();
 +    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
 +      return isSetResourceSpecificCredentialStoreToken();
 +    case QUALITY_OF_SERVICE:
 +      return isSetQualityOfService();
 +    case RESERVATION:
 +      return isSetReservation();
 +    case RESERVATION_START_TIME:
 +      return isSetReservationStartTime();
 +    case RESERVATION_END_TIME:
 +      return isSetReservationEndTime();
 +    }
 +    throw new IllegalStateException();
 +  }
 +
 +  @Override
 +  public boolean equals(Object that) {
 +    if (that == null)
 +      return false;
 +    if (that instanceof UserComputeResourcePreference)
 +      return this.equals((UserComputeResourcePreference)that);
 +    return false;
 +  }
 +
 +  public boolean equals(UserComputeResourcePreference that) {
 +    if (that == null)
 +      return false;
 +
 +    boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
 +    boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
 +    if (this_present_computeResourceId || that_present_computeResourceId) {
 +      if (!(this_present_computeResourceId && that_present_computeResourceId))
 +        return false;
 +      if (!this.computeResourceId.equals(that.computeResourceId))
 +        return false;
 +    }
 +
 +    boolean this_present_loginUserName = true && this.isSetLoginUserName();
 +    boolean that_present_loginUserName = true && that.isSetLoginUserName();
 +    if (this_present_loginUserName || that_present_loginUserName) {
 +      if (!(this_present_loginUserName && that_present_loginUserName))
 +        return false;
 +      if (!this.loginUserName.equals(that.loginUserName))
 +        return false;
 +    }
 +
 +    boolean this_present_preferredBatchQueue = true && this.isSetPreferredBatchQueue();
 +    boolean that_present_preferredBatchQueue = true && that.isSetPreferredBatchQueue();
 +    if (this_present_preferredBatchQueue || that_present_preferredBatchQueue) {
 +      if (!(this_present_preferredBatchQueue && that_present_preferredBatchQueue))
 +        return false;
 +      if (!this.preferredBatchQueue.equals(that.preferredBatchQueue))
 +        return false;
 +    }
 +
 +    boolean this_present_scratchLocation = true && this.isSetScratchLocation();
 +    boolean that_present_scratchLocation = true && that.isSetScratchLocation();
 +    if (this_present_scratchLocation || that_present_scratchLocation) {
 +      if (!(this_present_scratchLocation && that_present_scratchLocation))
 +        return false;
 +      if (!this.scratchLocation.equals(that.scratchLocation))
 +        return false;
 +    }
 +
 +    boolean this_present_allocationProjectNumber = true && this.isSetAllocationProjectNumber();
 +    boolean that_present_allocationProjectNumber = true && that.isSetAllocationProjectNumber();
 +    if (this_present_allocationProjectNumber || that_present_allocationProjectNumber) {
 +      if (!(this_present_allocationProjectNumber && that_present_allocationProjectNumber))
 +        return false;
 +      if (!this.allocationProjectNumber.equals(that.allocationProjectNumber))
 +        return false;
 +    }
 +
 +    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
 +    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
 +    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
 +      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
 +        return false;
 +      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
 +        return false;
 +    }
 +
 +    boolean this_present_qualityOfService = true && this.isSetQualityOfService();
 +    boolean that_present_qualityOfService = true && that.isSetQualityOfService();
 +    if (this_present_qualityOfService || that_present_qualityOfService) {
 +      if (!(this_present_qualityOfService && that_present_qualityOfService))
 +        return false;
 +      if (!this.qualityOfService.equals(that.qualityOfService))
 +        return false;
 +    }
 +
 +    boolean this_present_reservation = true && this.isSetReservation();
 +    boolean that_present_reservation = true && that.isSetReservation();
 +    if (this_present_reservation || that_present_reservation) {
 +      if (!(this_present_reservation && that_present_reservation))
 +        return false;
 +      if (!this.reservation.equals(that.reservation))
 +        return false;
 +    }
 +
 +    boolean this_present_reservationStartTime = true && this.isSetReservationStartTime();
 +    boolean that_present_reservationStartTime = true && that.isSetReservationStartTime();
 +    if (this_present_reservationStartTime || that_present_reservationStartTime) {
 +      if (!(this_present_reservationStartTime && that_present_reservationStartTime))
 +        return false;
 +      if (this.reservationStartTime != that.reservationStartTime)
 +        return false;
 +    }
 +
 +    boolean this_present_reservationEndTime = true && this.isSetReservationEndTime();
 +    boolean that_present_reservationEndTime = true && that.isSetReservationEndTime();
 +    if (this_present_reservationEndTime || that_present_reservationEndTime) {
 +      if (!(this_present_reservationEndTime && that_present_reservationEndTime))
 +        return false;
 +      if (this.reservationEndTime != that.reservationEndTime)
 +        return false;
 +    }
 +
 +    return true;
 +  }
 +
 +  @Override
 +  public int hashCode() {
 +    List<Object> list = new ArrayList<Object>();
 +
 +    boolean present_computeResourceId = true && (isSetComputeResourceId());
 +    list.add(present_computeResourceId);
 +    if (present_computeResourceId)
 +      list.add(computeResourceId);
 +
 +    boolean present_loginUserName = true && (isSetLoginUserName());
 +    list.add(present_loginUserName);
 +    if (present_loginUserName)
 +      list.add(loginUserName);
 +
 +    boolean present_preferredBatchQueue = true && (isSetPreferredBatchQueue());
 +    list.add(present_preferredBatchQueue);
 +    if (present_preferredBatchQueue)
 +      list.add(preferredBatchQueue);
 +
 +    boolean present_scratchLocation = true && (isSetScratchLocation());
 +    list.add(present_scratchLocation);
 +    if (present_scratchLocation)
 +      list.add(scratchLocation);
 +
 +    boolean present_allocationProjectNumber = true && (isSetAllocationProjectNumber());
 +    list.add(present_allocationProjectNumber);
 +    if (present_allocationProjectNumber)
 +      list.add(allocationProjectNumber);
 +
 +    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
 +    list.add(present_resourceSpecificCredentialStoreToken);
 +    if (present_resourceSpecificCredentialStoreToken)
 +      list.add(resourceSpecificCredentialStoreToken);
 +
 +    boolean present_qualityOfService = true && (isSetQualityOfService());
 +    list.add(present_qualityOfService);
 +    if (present_qualityOfService)
 +      list.add(qualityOfService);
 +
 +    boolean present_reservation = true && (isSetReservation());
 +    list.add(present_reservation);
 +    if (present_reservation)
 +      list.add(reservation);
 +
 +    boolean present_reservationStartTime = true && (isSetReservationStartTime());
 +    list.add(present_reservationStartTime);
 +    if (present_reservationStartTime)
 +      list.add(reservationStartTime);
 +
 +    boolean present_reservationEndTime = true && (isSetReservationEndTime());
 +    list.add(present_reservationEndTime);
 +    if (present_reservationEndTime)
 +      list.add(reservationEndTime);
 +
 +    return list.hashCode();
 +  }
 +
 +  @Override
 +  public int compareTo(UserComputeResourcePreference other) {
 +    if (!getClass().equals(other.getClass())) {
 +      return getClass().getName().compareTo(other.getClass().getName());
 +    }
 +
 +    int lastComparison = 0;
 +
 +    lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetComputeResourceId()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetLoginUserName()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetPreferredBatchQueue()).compareTo(other.isSetPreferredBatchQueue());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetPreferredBatchQueue()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredBatchQueue, other.preferredBatchQueue);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetScratchLocation()).compareTo(other.isSetScratchLocation());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetScratchLocation()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scratchLocation, other.scratchLocation);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetAllocationProjectNumber()).compareTo(other.isSetAllocationProjectNumber());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetAllocationProjectNumber()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allocationProjectNumber, other.allocationProjectNumber);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetResourceSpecificCredentialStoreToken()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetQualityOfService()).compareTo(other.isSetQualityOfService());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetQualityOfService()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qualityOfService, other.qualityOfService);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetReservation()).compareTo(other.isSetReservation());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetReservation()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservation, other.reservation);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetReservationStartTime()).compareTo(other.isSetReservationStartTime());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetReservationStartTime()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationStartTime, other.reservationStartTime);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
 +    lastComparison = Boolean.valueOf(isSetReservationEndTime()).compareTo(other.isSetReservationEndTime());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (isSetReservationEndTime()) {
 +      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationEndTime, other.reservationEndTime);
 +      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);
 +  }
 +
 +  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
 +    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
 +  }
 +
 +  @Override
 +  public String toString() {
 +    StringBuilder sb = new StringBuilder("UserComputeResourcePreference(");
 +    boolean first = true;
 +
 +    sb.append("computeResourceId:");
 +    if (this.computeResourceId == null) {
 +      sb.append("null");
 +    } else {
 +      sb.append(this.computeResourceId);
 +    }
 +    first = false;
 +    if (isSetLoginUserName()) {
 +      if (!first) sb.append(", ");
 +      sb.append("loginUserName:");
 +      if (this.loginUserName == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.loginUserName);
 +      }
 +      first = false;
 +    }
 +    if (isSetPreferredBatchQueue()) {
 +      if (!first) sb.append(", ");
 +      sb.append("preferredBatchQueue:");
 +      if (this.preferredBatchQueue == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.preferredBatchQueue);
 +      }
 +      first = false;
 +    }
 +    if (isSetScratchLocation()) {
 +      if (!first) sb.append(", ");
 +      sb.append("scratchLocation:");
 +      if (this.scratchLocation == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.scratchLocation);
 +      }
 +      first = false;
 +    }
 +    if (isSetAllocationProjectNumber()) {
 +      if (!first) sb.append(", ");
 +      sb.append("allocationProjectNumber:");
 +      if (this.allocationProjectNumber == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.allocationProjectNumber);
 +      }
 +      first = false;
 +    }
 +    if (isSetResourceSpecificCredentialStoreToken()) {
 +      if (!first) sb.append(", ");
 +      sb.append("resourceSpecificCredentialStoreToken:");
 +      if (this.resourceSpecificCredentialStoreToken == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.resourceSpecificCredentialStoreToken);
 +      }
 +      first = false;
 +    }
 +    if (isSetQualityOfService()) {
 +      if (!first) sb.append(", ");
 +      sb.append("qualityOfService:");
 +      if (this.qualityOfService == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.qualityOfService);
 +      }
 +      first = false;
 +    }
 +    if (isSetReservation()) {
 +      if (!first) sb.append(", ");
 +      sb.append("reservation:");
 +      if (this.reservation == null) {
 +        sb.append("null");
 +      } else {
 +        sb.append(this.reservation);
 +      }
 +      first = false;
 +    }
 +    if (isSetReservationStartTime()) {
 +      if (!first) sb.append(", ");
 +      sb.append("reservationStartTime:");
 +      sb.append(this.reservationStartTime);
 +      first = false;
 +    }
 +    if (isSetReservationEndTime()) {
 +      if (!first) sb.append(", ");
 +      sb.append("reservationEndTime:");
 +      sb.append(this.reservationEndTime);
 +      first = false;
 +    }
 +    sb.append(")");
 +    return sb.toString();
 +  }
 +
 +  public void validate() throws org.apache.thrift.TException {
 +    // check for required fields
 +    if (!isSetComputeResourceId()) {
 +      throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' is unset! Struct:" + toString());
 +    }
 +
 +    // 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 {
 +    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 UserComputeResourcePreferenceStandardSchemeFactory implements SchemeFactory {
 +    public UserComputeResourcePreferenceStandardScheme getScheme() {
 +      return new UserComputeResourcePreferenceStandardScheme();
 +    }
 +  }
 +
 +  private static class UserComputeResourcePreferenceStandardScheme extends StandardScheme<UserComputeResourcePreference> {
 +
 +    public void read(org.apache.thrift.protocol.TProtocol iprot, UserComputeResourcePreference 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: // COMPUTE_RESOURCE_ID
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.computeResourceId = iprot.readString();
 +              struct.setComputeResourceIdIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 2: // LOGIN_USER_NAME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.loginUserName = iprot.readString();
 +              struct.setLoginUserNameIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 3: // PREFERRED_BATCH_QUEUE
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.preferredBatchQueue = iprot.readString();
 +              struct.setPreferredBatchQueueIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 4: // SCRATCH_LOCATION
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.scratchLocation = iprot.readString();
 +              struct.setScratchLocationIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 5: // ALLOCATION_PROJECT_NUMBER
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.allocationProjectNumber = iprot.readString();
 +              struct.setAllocationProjectNumberIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 6: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.resourceSpecificCredentialStoreToken = iprot.readString();
 +              struct.setResourceSpecificCredentialStoreTokenIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 7: // QUALITY_OF_SERVICE
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.qualityOfService = iprot.readString();
 +              struct.setQualityOfServiceIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 8: // RESERVATION
 +            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
 +              struct.reservation = iprot.readString();
 +              struct.setReservationIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 9: // RESERVATION_START_TIME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
 +              struct.reservationStartTime = iprot.readI64();
 +              struct.setReservationStartTimeIsSet(true);
 +            } else { 
 +              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
 +            }
 +            break;
 +          case 10: // RESERVATION_END_TIME
 +            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
 +              struct.reservationEndTime = iprot.readI64();
 +              struct.setReservationEndTimeIsSet(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();
 +      struct.validate();
 +    }
 +
 +    public void write(org.apache.thrift.protocol.TProtocol oprot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
 +      struct.validate();
 +
 +      oprot.writeStructBegin(STRUCT_DESC);
 +      if (struct.computeResourceId != null) {
 +        oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
 +        oprot.writeString(struct.computeResourceId);
 +        oprot.writeFieldEnd();
 +      }
 +      if (struct.loginUserName != null) {
 +        if (struct.isSetLoginUserName()) {
 +          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
 +          oprot.writeString(struct.loginUserName);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.preferredBatchQueue != null) {
 +        if (struct.isSetPreferredBatchQueue()) {
 +          oprot.writeFieldBegin(PREFERRED_BATCH_QUEUE_FIELD_DESC);
 +          oprot.writeString(struct.preferredBatchQueue);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.scratchLocation != null) {
 +        if (struct.isSetScratchLocation()) {
 +          oprot.writeFieldBegin(SCRATCH_LOCATION_FIELD_DESC);
 +          oprot.writeString(struct.scratchLocation);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.allocationProjectNumber != null) {
 +        if (struct.isSetAllocationProjectNumber()) {
 +          oprot.writeFieldBegin(ALLOCATION_PROJECT_NUMBER_FIELD_DESC);
 +          oprot.writeString(struct.allocationProjectNumber);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.resourceSpecificCredentialStoreToken != null) {
 +        if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
 +          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.qualityOfService != null) {
 +        if (struct.isSetQualityOfService()) {
 +          oprot.writeFieldBegin(QUALITY_OF_SERVICE_FIELD_DESC);
 +          oprot.writeString(struct.qualityOfService);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.reservation != null) {
 +        if (struct.isSetReservation()) {
 +          oprot.writeFieldBegin(RESERVATION_FIELD_DESC);
 +          oprot.writeString(struct.reservation);
 +          oprot.writeFieldEnd();
 +        }
 +      }
 +      if (struct.isSetReservationStartTime()) {
 +        oprot.writeFieldBegin(RESERVATION_START_TIME_FIELD_DESC);
 +        oprot.writeI64(struct.reservationStartTime);
 +        oprot.writeFieldEnd();
 +      }
 +      if (struct.isSetReservationEndTime()) {
 +        oprot.writeFieldBegin(RESERVATION_END_TIME_FIELD_DESC);
 +        oprot.writeI64(struct.reservationEndTime);
 +        oprot.writeFieldEnd();
 +      }
 +      oprot.writeFieldStop();
 +      oprot.writeStructEnd();
 +    }
 +
 +  }
 +
 +  private static class UserComputeResourcePreferenceTupleSchemeFactory implements SchemeFactory {
 +    public UserComputeResourcePreferenceTupleScheme getScheme() {
 +      return new UserComputeResourcePreferenceTupleScheme();
 +    }
 +  }
 +
 +  private static class UserComputeResourcePreferenceTupleScheme extends TupleScheme<UserComputeResourcePreference> {
 +
 +    @Override
 +    public void write(org.apache.thrift.protocol.TProtocol prot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
 +      TTupleProtocol oprot = (TTupleProtocol) prot;
 +      oprot.writeString(struct.computeResourceId);
 +      BitSet optionals = new BitSet();
 +      if (struct.isSetLoginUserName()) {
 +        optionals.set(0);
 +      }
 +      if (struct.isSetPreferredBatchQueue()) {
 +        optionals.set(1);
 +      }
 +      if (struct.isSetScratchLocation()) {
 +        optionals.set(2);
 +      }
 +      if (struct.isSetAllocationProjectNumber()) {
 +        optionals.set(3);
 +      }
 +      if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +        optionals.set(4);
 +      }
 +      if (struct.isSetQualityOfService()) {
 +        optionals.set(5);
 +      }
 +      if (struct.isSetReservation()) {
 +        optionals.set(6);
 +      }
 +      if (struct.isSetReservationStartTime()) {
 +        optionals.set(7);
 +      }
 +      if (struct.isSetReservationEndTime()) {
 +        optionals.set(8);
 +      }
 +      oprot.writeBitSet(optionals, 9);
 +      if (struct.isSetLoginUserName()) {
 +        oprot.writeString(struct.loginUserName);
 +      }
 +      if (struct.isSetPreferredBatchQueue()) {
 +        oprot.writeString(struct.preferredBatchQueue);
 +      }
 +      if (struct.isSetScratchLocation()) {
 +        oprot.writeString(struct.scratchLocation);
 +      }
 +      if (struct.isSetAllocationProjectNumber()) {
 +        oprot.writeString(struct.allocationProjectNumber);
 +      }
 +      if (struct.isSetResourceSpecificCredentialStoreToken()) {
 +        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
 +      }
 +      if (struct.isSetQualityOfService()) {
 +        oprot.writeString(struct.qualityOfService);
 +      }
 +      if (struct.isSetReservation()) {
 +        oprot.writeString(struct.reservation);
 +      }
 +      if (struct.isSetReservationStartTime()) {
 +        oprot.writeI64(struct.reservationStartTime);
 +      }
 +      if (struct.isSetReservationEndTime()) {
 +        oprot.writeI64(struct.reservationEndTime);
 +      }
 +    }
 +
 +    @Override
 +    public void read(org.apache.thrift.protocol.TProtocol prot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
 +      TTupleProtocol iprot = (TTupleProtocol) prot;
 +      struct.computeResourceId = iprot.readString();
 +      struct.setComputeResourceIdIsSet(true);
 +      BitSet incoming = iprot.readBitSet(9);
 +      if (incoming.get(0)) {
 +        struct.loginUserName = iprot.readString();
 +        struct.setLoginUserNameIsSet(true);
 +      }
 +      if (incoming.get(1)) {
 +        struct.preferredBatchQueue = iprot.readString();
 +        struct.setPreferredBatchQueueIsSet(true);
 +      }
 +      if (incoming.get(2)) {
 +        struct.scratchLocation = iprot.readString();
 +        struct.setScratchLocationIsSet(true);
 +      }
 +      if (incoming.get(3)) {
 +        struct.allocationProjectNumber = iprot.readString();
 +        struct.setAllocationProjectNumberIsSet(true);
 +      }
 +      if (incoming.get(4)) {
 +        struct.resourceSpecificCredentialStoreToken = iprot.readString();
 +        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
 +      }
 +      if (incoming.get(5)) {
 +        struct.qualityOfService = iprot.readString();
 +        struct.setQualityOfServiceIsSet(true);
 +      }
 +      if (incoming.get(6)) {
 +        struct.reservation = iprot.readString();
 +        struct.setReservationIsSet(true);
 +      }
 +      if (incoming.get(7)) {
 +        struct.reservationStartTime = iprot.readI64();
 +        struct.setReservationStartTimeIsSet(true);
 +      }
 +      if (incoming.get(8)) {
 +        struct.reservationEndTime = iprot.readI64();
 +        struct.setReservationEndTimeIsSet(true);
 +      }
 +    }
 +  }
 +
 +}
 +


[12/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
index ff33544..c53ac73 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
@@ -21,6 +21,7 @@ import apache.airavata.model.appcatalog.appinterface.ttypes
 import apache.airavata.model.appcatalog.computeresource.ttypes
 import apache.airavata.model.appcatalog.storageresource.ttypes
 import apache.airavata.model.appcatalog.gatewayprofile.ttypes
+import apache.airavata.model.appcatalog.userresourceprofile.ttypes
 import apache.airavata.model.data.movement.ttypes
 import apache.airavata.model.workflow.ttypes
 import apache.airavata.model.data.replica.ttypes

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
index 111d241..52478a6 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/job/ttypes.py
@@ -27,7 +27,7 @@ class JobModel:
    - processId
    - jobDescription
    - creationTime
-   - jobStatus
+   - jobStatuses
    - computeResourceConsumed
    - jobName
    - workingDir
@@ -43,7 +43,7 @@ class JobModel:
     (3, TType.STRING, 'processId', None, None, ), # 3
     (4, TType.STRING, 'jobDescription', None, None, ), # 4
     (5, TType.I64, 'creationTime', None, None, ), # 5
-    (6, TType.LIST, 'jobStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec)), None, ), # 6
+    (6, TType.LIST, 'jobStatuses', (TType.STRUCT,(apache.airavata.model.status.ttypes.JobStatus, apache.airavata.model.status.ttypes.JobStatus.thrift_spec)), None, ), # 6
     (7, TType.STRING, 'computeResourceConsumed', None, None, ), # 7
     (8, TType.STRING, 'jobName', None, None, ), # 8
     (9, TType.STRING, 'workingDir', None, None, ), # 9
@@ -52,13 +52,13 @@ class JobModel:
     (12, TType.I32, 'exitCode', None, None, ), # 12
   )
 
-  def __init__(self, jobId=None, taskId=None, processId=None, jobDescription=None, creationTime=None, jobStatus=None, computeResourceConsumed=None, jobName=None, workingDir=None, stdOut=None, stdErr=None, exitCode=None,):
+  def __init__(self, jobId=None, taskId=None, processId=None, jobDescription=None, creationTime=None, jobStatuses=None, computeResourceConsumed=None, jobName=None, workingDir=None, stdOut=None, stdErr=None, exitCode=None,):
     self.jobId = jobId
     self.taskId = taskId
     self.processId = processId
     self.jobDescription = jobDescription
     self.creationTime = creationTime
-    self.jobStatus = jobStatus
+    self.jobStatuses = jobStatuses
     self.computeResourceConsumed = computeResourceConsumed
     self.jobName = jobName
     self.workingDir = workingDir
@@ -102,12 +102,12 @@ class JobModel:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.LIST:
-          self.jobStatus = []
+          self.jobStatuses = []
           (_etype3, _size0) = iprot.readListBegin()
           for _i4 in xrange(_size0):
             _elem5 = apache.airavata.model.status.ttypes.JobStatus()
             _elem5.read(iprot)
-            self.jobStatus.append(_elem5)
+            self.jobStatuses.append(_elem5)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -171,10 +171,10 @@ class JobModel:
       oprot.writeFieldBegin('creationTime', TType.I64, 5)
       oprot.writeI64(self.creationTime)
       oprot.writeFieldEnd()
-    if self.jobStatus is not None:
-      oprot.writeFieldBegin('jobStatus', TType.LIST, 6)
-      oprot.writeListBegin(TType.STRUCT, len(self.jobStatus))
-      for iter6 in self.jobStatus:
+    if self.jobStatuses is not None:
+      oprot.writeFieldBegin('jobStatuses', TType.LIST, 6)
+      oprot.writeListBegin(TType.STRUCT, len(self.jobStatuses))
+      for iter6 in self.jobStatuses:
         iter6.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
@@ -224,7 +224,7 @@ class JobModel:
     value = (value * 31) ^ hash(self.processId)
     value = (value * 31) ^ hash(self.jobDescription)
     value = (value * 31) ^ hash(self.creationTime)
-    value = (value * 31) ^ hash(self.jobStatus)
+    value = (value * 31) ^ hash(self.jobStatuses)
     value = (value * 31) ^ hash(self.computeResourceConsumed)
     value = (value * 31) ^ hash(self.jobName)
     value = (value * 31) ^ hash(self.workingDir)

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
index 868b383..f5fe908 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/process/ttypes.py
@@ -38,7 +38,7 @@ class ProcessModel:
    - experimentId
    - creationTime
    - lastUpdateTime
-   - processStatus
+   - processStatuses
    - processDetail
    - applicationInterfaceId
    - applicationDeploymentId
@@ -48,7 +48,7 @@ class ProcessModel:
    - processResourceSchedule
    - tasks
    - taskDag
-   - processError
+   - processErrors
    - gatewayExecutionId
    - enableEmailNotification
    - emailAddresses
@@ -65,7 +65,7 @@ class ProcessModel:
     (2, TType.STRING, 'experimentId', None, None, ), # 2
     (3, TType.I64, 'creationTime', None, None, ), # 3
     (4, TType.I64, 'lastUpdateTime', None, None, ), # 4
-    (5, TType.LIST, 'processStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec)), None, ), # 5
+    (5, TType.LIST, 'processStatuses', (TType.STRUCT,(apache.airavata.model.status.ttypes.ProcessStatus, apache.airavata.model.status.ttypes.ProcessStatus.thrift_spec)), None, ), # 5
     (6, TType.STRING, 'processDetail', None, None, ), # 6
     (7, TType.STRING, 'applicationInterfaceId', None, None, ), # 7
     (8, TType.STRING, 'applicationDeploymentId', None, None, ), # 8
@@ -75,7 +75,7 @@ class ProcessModel:
     (12, TType.STRUCT, 'processResourceSchedule', (apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel, apache.airavata.model.scheduling.ttypes.ComputationalResourceSchedulingModel.thrift_spec), None, ), # 12
     (13, TType.LIST, 'tasks', (TType.STRUCT,(apache.airavata.model.task.ttypes.TaskModel, apache.airavata.model.task.ttypes.TaskModel.thrift_spec)), None, ), # 13
     (14, TType.STRING, 'taskDag', None, None, ), # 14
-    (15, TType.LIST, 'processError', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 15
+    (15, TType.LIST, 'processErrors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 15
     (16, TType.STRING, 'gatewayExecutionId', None, None, ), # 16
     (17, TType.BOOL, 'enableEmailNotification', None, None, ), # 17
     (18, TType.LIST, 'emailAddresses', (TType.STRING,None), None, ), # 18
@@ -86,12 +86,12 @@ class ProcessModel:
     (23, TType.STRING, 'userName', None, None, ), # 23
   )
 
-  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatus=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, processResourceSchedule=None, tasks=None, taskDag=None, processError=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[21][4], experimentDataDir=None, userName=None,):
+  def __init__(self, processId=thrift_spec[1][4], experimentId=None, creationTime=None, lastUpdateTime=None, processStatuses=None, processDetail=None, applicationInterfaceId=None, applicationDeploymentId=None, computeResourceId=None, processInputs=None, processOutputs=None, processResourceSchedule=None, tasks=None, taskDag=None, processErrors=None, gatewayExecutionId=None, enableEmailNotification=None, emailAddresses=None, storageResourceId=None, userDn=None, generateCert=thrift_spec[21][4], experimentDataDir=None, userName=None,):
     self.processId = processId
     self.experimentId = experimentId
     self.creationTime = creationTime
     self.lastUpdateTime = lastUpdateTime
-    self.processStatus = processStatus
+    self.processStatuses = processStatuses
     self.processDetail = processDetail
     self.applicationInterfaceId = applicationInterfaceId
     self.applicationDeploymentId = applicationDeploymentId
@@ -101,7 +101,7 @@ class ProcessModel:
     self.processResourceSchedule = processResourceSchedule
     self.tasks = tasks
     self.taskDag = taskDag
-    self.processError = processError
+    self.processErrors = processErrors
     self.gatewayExecutionId = gatewayExecutionId
     self.enableEmailNotification = enableEmailNotification
     self.emailAddresses = emailAddresses
@@ -142,12 +142,12 @@ class ProcessModel:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.LIST:
-          self.processStatus = []
+          self.processStatuses = []
           (_etype3, _size0) = iprot.readListBegin()
           for _i4 in xrange(_size0):
             _elem5 = apache.airavata.model.status.ttypes.ProcessStatus()
             _elem5.read(iprot)
-            self.processStatus.append(_elem5)
+            self.processStatuses.append(_elem5)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -217,12 +217,12 @@ class ProcessModel:
           iprot.skip(ftype)
       elif fid == 15:
         if ftype == TType.LIST:
-          self.processError = []
+          self.processErrors = []
           (_etype27, _size24) = iprot.readListBegin()
           for _i28 in xrange(_size24):
             _elem29 = apache.airavata.model.commons.ttypes.ErrorModel()
             _elem29.read(iprot)
-            self.processError.append(_elem29)
+            self.processErrors.append(_elem29)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -297,10 +297,10 @@ class ProcessModel:
       oprot.writeFieldBegin('lastUpdateTime', TType.I64, 4)
       oprot.writeI64(self.lastUpdateTime)
       oprot.writeFieldEnd()
-    if self.processStatus is not None:
-      oprot.writeFieldBegin('processStatus', TType.LIST, 5)
-      oprot.writeListBegin(TType.STRUCT, len(self.processStatus))
-      for iter36 in self.processStatus:
+    if self.processStatuses is not None:
+      oprot.writeFieldBegin('processStatuses', TType.LIST, 5)
+      oprot.writeListBegin(TType.STRUCT, len(self.processStatuses))
+      for iter36 in self.processStatuses:
         iter36.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
@@ -349,10 +349,10 @@ class ProcessModel:
       oprot.writeFieldBegin('taskDag', TType.STRING, 14)
       oprot.writeString(self.taskDag)
       oprot.writeFieldEnd()
-    if self.processError is not None:
-      oprot.writeFieldBegin('processError', TType.LIST, 15)
-      oprot.writeListBegin(TType.STRUCT, len(self.processError))
-      for iter40 in self.processError:
+    if self.processErrors is not None:
+      oprot.writeFieldBegin('processErrors', TType.LIST, 15)
+      oprot.writeListBegin(TType.STRUCT, len(self.processErrors))
+      for iter40 in self.processErrors:
         iter40.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
@@ -408,7 +408,7 @@ class ProcessModel:
     value = (value * 31) ^ hash(self.experimentId)
     value = (value * 31) ^ hash(self.creationTime)
     value = (value * 31) ^ hash(self.lastUpdateTime)
-    value = (value * 31) ^ hash(self.processStatus)
+    value = (value * 31) ^ hash(self.processStatuses)
     value = (value * 31) ^ hash(self.processDetail)
     value = (value * 31) ^ hash(self.applicationInterfaceId)
     value = (value * 31) ^ hash(self.applicationDeploymentId)
@@ -418,7 +418,7 @@ class ProcessModel:
     value = (value * 31) ^ hash(self.processResourceSchedule)
     value = (value * 31) ^ hash(self.tasks)
     value = (value * 31) ^ hash(self.taskDag)
-    value = (value * 31) ^ hash(self.processError)
+    value = (value * 31) ^ hash(self.processErrors)
     value = (value * 31) ^ hash(self.gatewayExecutionId)
     value = (value * 31) ^ hash(self.enableEmailNotification)
     value = (value * 31) ^ hash(self.emailAddresses)

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
index 9699f7b..213598b 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/task/ttypes.py
@@ -94,10 +94,10 @@ class TaskModel:
    - parentProcessId
    - creationTime
    - lastUpdateTime
-   - taskStatus
+   - taskStatuses
    - taskDetail
    - subTaskModel
-   - taskError
+   - taskErrors
    - jobs
   """
 
@@ -108,23 +108,23 @@ class TaskModel:
     (3, TType.STRING, 'parentProcessId', None, None, ), # 3
     (4, TType.I64, 'creationTime', None, None, ), # 4
     (5, TType.I64, 'lastUpdateTime', None, None, ), # 5
-    (6, TType.LIST, 'taskStatus', (TType.STRUCT,(apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec)), None, ), # 6
+    (6, TType.LIST, 'taskStatuses', (TType.STRUCT,(apache.airavata.model.status.ttypes.TaskStatus, apache.airavata.model.status.ttypes.TaskStatus.thrift_spec)), None, ), # 6
     (7, TType.STRING, 'taskDetail', None, None, ), # 7
     (8, TType.STRING, 'subTaskModel', None, None, ), # 8
-    (9, TType.LIST, 'taskError', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 9
+    (9, TType.LIST, 'taskErrors', (TType.STRUCT,(apache.airavata.model.commons.ttypes.ErrorModel, apache.airavata.model.commons.ttypes.ErrorModel.thrift_spec)), None, ), # 9
     (10, TType.LIST, 'jobs', (TType.STRUCT,(apache.airavata.model.job.ttypes.JobModel, apache.airavata.model.job.ttypes.JobModel.thrift_spec)), None, ), # 10
   )
 
-  def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None, lastUpdateTime=None, taskStatus=None, taskDetail=None, subTaskModel=None, taskError=None, jobs=None,):
+  def __init__(self, taskId=thrift_spec[1][4], taskType=None, parentProcessId=None, creationTime=None, lastUpdateTime=None, taskStatuses=None, taskDetail=None, subTaskModel=None, taskErrors=None, jobs=None,):
     self.taskId = taskId
     self.taskType = taskType
     self.parentProcessId = parentProcessId
     self.creationTime = creationTime
     self.lastUpdateTime = lastUpdateTime
-    self.taskStatus = taskStatus
+    self.taskStatuses = taskStatuses
     self.taskDetail = taskDetail
     self.subTaskModel = subTaskModel
-    self.taskError = taskError
+    self.taskErrors = taskErrors
     self.jobs = jobs
 
   def read(self, iprot):
@@ -163,12 +163,12 @@ class TaskModel:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.LIST:
-          self.taskStatus = []
+          self.taskStatuses = []
           (_etype3, _size0) = iprot.readListBegin()
           for _i4 in xrange(_size0):
             _elem5 = apache.airavata.model.status.ttypes.TaskStatus()
             _elem5.read(iprot)
-            self.taskStatus.append(_elem5)
+            self.taskStatuses.append(_elem5)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -184,12 +184,12 @@ class TaskModel:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.LIST:
-          self.taskError = []
+          self.taskErrors = []
           (_etype9, _size6) = iprot.readListBegin()
           for _i10 in xrange(_size6):
             _elem11 = apache.airavata.model.commons.ttypes.ErrorModel()
             _elem11.read(iprot)
-            self.taskError.append(_elem11)
+            self.taskErrors.append(_elem11)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
@@ -234,10 +234,10 @@ class TaskModel:
       oprot.writeFieldBegin('lastUpdateTime', TType.I64, 5)
       oprot.writeI64(self.lastUpdateTime)
       oprot.writeFieldEnd()
-    if self.taskStatus is not None:
-      oprot.writeFieldBegin('taskStatus', TType.LIST, 6)
-      oprot.writeListBegin(TType.STRUCT, len(self.taskStatus))
-      for iter18 in self.taskStatus:
+    if self.taskStatuses is not None:
+      oprot.writeFieldBegin('taskStatuses', TType.LIST, 6)
+      oprot.writeListBegin(TType.STRUCT, len(self.taskStatuses))
+      for iter18 in self.taskStatuses:
         iter18.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
@@ -249,10 +249,10 @@ class TaskModel:
       oprot.writeFieldBegin('subTaskModel', TType.STRING, 8)
       oprot.writeString(self.subTaskModel)
       oprot.writeFieldEnd()
-    if self.taskError is not None:
-      oprot.writeFieldBegin('taskError', TType.LIST, 9)
-      oprot.writeListBegin(TType.STRUCT, len(self.taskError))
-      for iter19 in self.taskError:
+    if self.taskErrors is not None:
+      oprot.writeFieldBegin('taskErrors', TType.LIST, 9)
+      oprot.writeListBegin(TType.STRUCT, len(self.taskErrors))
+      for iter19 in self.taskErrors:
         iter19.write(oprot)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
@@ -277,8 +277,8 @@ class TaskModel:
       raise TProtocol.TProtocolException(message='Required field creationTime is unset!')
     if self.lastUpdateTime is None:
       raise TProtocol.TProtocolException(message='Required field lastUpdateTime is unset!')
-    if self.taskStatus is None:
-      raise TProtocol.TProtocolException(message='Required field taskStatus is unset!')
+    if self.taskStatuses is None:
+      raise TProtocol.TProtocolException(message='Required field taskStatuses is unset!')
     return
 
 
@@ -289,10 +289,10 @@ class TaskModel:
     value = (value * 31) ^ hash(self.parentProcessId)
     value = (value * 31) ^ hash(self.creationTime)
     value = (value * 31) ^ hash(self.lastUpdateTime)
-    value = (value * 31) ^ hash(self.taskStatus)
+    value = (value * 31) ^ hash(self.taskStatuses)
     value = (value * 31) ^ hash(self.taskDetail)
     value = (value * 31) ^ hash(self.subTaskModel)
-    value = (value * 31) ^ hash(self.taskError)
+    value = (value * 31) ^ hash(self.taskErrors)
     value = (value * 31) ^ hash(self.jobs)
     return value
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
index a3b0f9b..0284ed4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/impl/UsrResourceProfileImpl.java
@@ -28,14 +28,13 @@ import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePrefe
 import org.apache.airavata.registry.core.app.catalog.resources.*;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogThriftConversion;
 import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.apache.airavata.registry.cpi.UsrResourceProfile;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 public class UsrResourceProfileImpl implements UsrResourceProfile {
     private final static Logger logger = LoggerFactory.getLogger(UsrResourceProfileImpl.class);
@@ -44,6 +43,9 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public String addUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws AppCatalogException {
         try {
             UserResourceProfileResource profileResource = new UserResourceProfileResource();
+            if (!userResourceProfile.getUserId().equals("")){
+                profileResource.setUserId(userResourceProfile.getUserId());
+            }
             if (!userResourceProfile.getGatewayID().equals("")){
                 profileResource.setGatewayID(userResourceProfile.getGatewayID());
             }
@@ -56,6 +58,7 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
             if (userResourceProfile.getIdentityServerPwdCredToken() != null){
                 profileResource.setIdentityServerPwdCredToken(userResourceProfile.getIdentityServerPwdCredToken());
             }
+            profileResource.setUserId(userResourceProfile.getUserId());
             profileResource.setGatewayID(userResourceProfile.getGatewayID());
             profileResource.save();
             List<UserComputeResourcePreference> userComputeResourcePreferences = userResourceProfile.getUserComputeResourcePreferences();
@@ -91,6 +94,7 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
                     UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
                     resource.setStorageResourceId(storagePreference.getStorageResourceId());
                     resource.setGatewayId(profileResource.getGatewayID());
+                    resource.setUserId(profileResource.getUserId());
                     resource.setFsRootLocation(storagePreference.getFileSystemRootLocation());
                     resource.setLoginUserName(storagePreference.getLoginUserName());
                     resource.setResourceCSToken(storagePreference.getResourceSpecificCredentialStoreToken());
@@ -109,7 +113,8 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public void updateUserResourceProfile(String userId, String gatewayId, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile updatedProfile) throws AppCatalogException {
         try {
             UserResourceProfileResource profileResource = new UserResourceProfileResource();
-            UserResourceProfileResource existingUP = (UserResourceProfileResource)profileResource.get(userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId,gatewayId);
+            UserResourceProfileResource existingUP = (UserResourceProfileResource)profileResource.get(ids);
             existingUP.setCredentialStoreToken(updatedProfile.getCredentialStoreToken());
             existingUP.setIdentityServerTenant(updatedProfile.getIdentityServerTenant());
             existingUP.setIdentityServerPwdCredToken(updatedProfile.getIdentityServerPwdCredToken());
@@ -166,14 +171,15 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public UserResourceProfile getUserResourceProfile(String userId, String gatewayId) throws AppCatalogException {
         try {
             UserResourceProfileResource resource = new UserResourceProfileResource();
-            UserResourceProfileResource uResource = (UserResourceProfileResource)resource.get(userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId,gatewayId);
+            UserResourceProfileResource uResource = (UserResourceProfileResource)resource.get(ids);
             UserComputeHostPreferenceResource prefResource = new UserComputeHostPreferenceResource();
-            List<AppCatalogResource> usercomputePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            List<AppCatalogResource> usercomputePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, ids);
             List<UserComputeResourcePreference> userComputeResourcePreferences = AppCatalogThriftConversion.getUserComputeResourcePreferences(usercomputePrefList);
-            List<UserStoragePreference> dataStoragePreferences = getAllStoragePreferences(gatewayId);
+            List<UserStoragePreference> dataStoragePreferences = getAllUserStoragePreferences(userId,gatewayId);
             return AppCatalogThriftConversion.getUserResourceProfile(uResource, userComputeResourcePreferences, dataStoragePreferences);
         }catch (Exception e) {
-            logger.error("Error while retrieving gateway profile...", e);
+            logger.error("Error while retrieving user resource profile...", e);
             throw new AppCatalogException(e);
         }
     }
@@ -182,7 +188,8 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public boolean removeUserResourceProfile(String userId, String gatewayId) throws AppCatalogException {
        try {
            UserResourceProfileResource resource = new UserResourceProfileResource();
-           resource.remove(userId);
+           CompositeIdentifier ids = new CompositeIdentifier(userId,gatewayId);
+           resource.remove(ids);
            return true;
        }catch (Exception e) {
            logger.error("Error while deleting user resource profile...", e);
@@ -194,9 +201,7 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public boolean removeUserComputeResourcePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException {
         try {
             UserComputeHostPreferenceResource resource = new UserComputeHostPreferenceResource();
-            Map<String, String> ids = new HashMap<String, String>();
-            ids.put(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
-            ids.put(AppCatAbstractResource.UserComputeResourcePreferenceConstants.RESOURCE_ID, preferenceId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId,gatewayId);
             resource.remove(ids);
             return true;
         }catch (Exception e) {
@@ -209,9 +214,7 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public boolean removeUserDataStoragePreferenceFromGateway(String userId, String gatewayId, String preferenceId) throws AppCatalogException {
         try {
             UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
-            Map<String, String> ids = new HashMap<String, String>();
-            ids.put(AppCatAbstractResource.UserStoragePreferenceConstants.USER_ID, userId);
-            ids.put(AppCatAbstractResource.UserStoragePreferenceConstants.STORAGE_ID, preferenceId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId,gatewayId);
             resource.remove(ids);
             return true;
         }catch (Exception e) {
@@ -224,7 +227,8 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public boolean isUserResourceProfileExists(String userId, String gatewayId) throws AppCatalogException {
         try {
             UserResourceProfileResource resource = new UserResourceProfileResource();
-            return resource.isExists(userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId, gatewayId);
+            return resource.isExists(ids);
         }catch (Exception e) {
             logger.error("Error while retrieving user resource profile...", e);
             throw new AppCatalogException(e);
@@ -240,7 +244,8 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayId, String hostId) throws AppCatalogException {
         try {
             UserComputeHostPreferenceResource prefResource = new UserComputeHostPreferenceResource();
-            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId, gatewayId);
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, ids);
             for (AppCatalogResource resource : computePrefList){
                 UserComputeHostPreferenceResource cmP = (UserComputeHostPreferenceResource) resource;
                 if (cmP.getResourceId() != null && !cmP.getResourceId().equals("")){
@@ -260,7 +265,8 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
     public UserStoragePreference getUserStoragePreference(String userId, String gatewayId, String storageId) throws AppCatalogException {
         try {
             UserStoragePreferenceResource prefResource = new UserStoragePreferenceResource();
-            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId, gatewayId);
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, ids);
             for (AppCatalogResource resource : computePrefList){
                 UserStoragePreferenceResource dsP = (UserStoragePreferenceResource) resource;
                 if (dsP.getStorageResourceId() != null && !dsP.getStorageResourceId().equals("")){
@@ -280,11 +286,12 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
      * @param userId
      * @return
      */
-
-    public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId) throws AppCatalogException {
+    @Override
+    public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId, String gatewayID) throws AppCatalogException {
         try {
-            ComputeHostPreferenceResource prefResource = new ComputeHostPreferenceResource();
-            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, userId);
+            UserComputeHostPreferenceResource prefResource = new UserComputeHostPreferenceResource();
+            CompositeIdentifier ids = new CompositeIdentifier(userId, gatewayID);
+            List<AppCatalogResource> computePrefList = prefResource.get(AppCatAbstractResource.UserComputeResourcePreferenceConstants.USER_ID, ids);
             return AppCatalogThriftConversion.getUserComputeResourcePreferences(computePrefList);
         }catch (Exception e) {
             logger.error("Error while retrieving compute resource preference...", e);
@@ -292,11 +299,12 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
         }
     }
 
-
-    public List<UserStoragePreference> getAllStoragePreferences(String userId) throws AppCatalogException {
+    @Override
+    public List<UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayID) throws AppCatalogException {
         try {
             UserStoragePreferenceResource prefResource = new UserStoragePreferenceResource();
-            List<AppCatalogResource> dataStoragePrefList = prefResource.get(AppCatAbstractResource.UserStoragePreferenceConstants.USER_ID, userId);
+            CompositeIdentifier ids = new CompositeIdentifier(userId, gatewayID);
+            List<AppCatalogResource> dataStoragePrefList = prefResource.get(AppCatAbstractResource.UserStoragePreferenceConstants.USER_ID, ids);
             return AppCatalogThriftConversion.getUserDataStoragePreferences(dataStoragePrefList);
         }catch (Exception e) {
             logger.error("Error while retrieving data storage preference...", e);
@@ -324,10 +332,11 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
 
     @Override
     public String getUserNamefromID(String userId, String gatewayID) throws AppCatalogException {
-//        This method implementation is critical
+//        Implementation not need, username and ID are some.
         return null;
     }
 
+
     @Override
     public List<UserResourceProfile> getAllUserResourceProfiles() throws AppCatalogException {
         try {
@@ -337,15 +346,15 @@ public class UsrResourceProfileImpl implements UsrResourceProfile {
             if (resourceList != null && !resourceList.isEmpty()){
                 for (AppCatalogResource resource : resourceList){
                     UserResourceProfileResource userProfileResource = (UserResourceProfileResource)resource;
-                    List<UserComputeResourcePreference> computeResourcePreferences = getAllUserComputeResourcePreferences(userProfileResource.getUserId());
-                    List<UserStoragePreference> dataStoragePreferences = getAllStoragePreferences(userProfileResource.getUserId());
+                    List<UserComputeResourcePreference> computeResourcePreferences = getAllUserComputeResourcePreferences(userProfileResource.getUserId(),userProfileResource.getGatewayID());
+                    List<UserStoragePreference> dataStoragePreferences = getAllUserStoragePreferences(userProfileResource.getUserId(), userProfileResource.getGatewayID());
                     UserResourceProfile gatewayResourceProfile = AppCatalogThriftConversion.getUserResourceProfile(userProfileResource, computeResourcePreferences, dataStoragePreferences);
                     gatewayResourceProfileList.add(gatewayResourceProfile);
                 }
             }
             return gatewayResourceProfileList;
         }catch (Exception e) {
-            logger.error("Error while retrieving gateway ids...", e);
+            logger.error("Error while retrieving user resource profiles...", e);
             throw new AppCatalogException(e);
         }
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
index cda901c..05f6e7c 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreference.java
@@ -27,17 +27,16 @@ import java.sql.Timestamp;
 
 @Entity
 @Table(name = "USER_COMPUTE_RESOURCE_PREFERENCE")
-@IdClass(ComputeResourcePreferencePK.class)
+@IdClass(UserComputeResourcePreferencePK.class)
 public class UserComputeResourcePreference {
     @Id
-    @Column(name = "GATEWAY_ID")
-    private String gatewayId;
-    @Id
     @Column(name = "USER_ID")
     private String userId;
     @Id
     @Column(name = "RESOURCE_ID")
     private String resourceId;
+    @Column(name = "GATEWAY_ID")
+    private String gatewayID;
     @Column(name = "PREFERED_BATCH_QUEUE")
     private String batchQueue;
     @Column(name = "SCRATCH_LOCATION")
@@ -64,7 +63,7 @@ public class UserComputeResourcePreference {
 
 
     @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "GATEWAY_ID")
+    @JoinColumn(name = "USER_ID")
     private UserResourceProfile userResouceProfile;
 
     /*User Id should be linked to user profile table once it is finalized and created*/
@@ -77,12 +76,12 @@ public class UserComputeResourcePreference {
         this.userId = userId;
     }
 
-    public String getGatewayId() {
-        return gatewayId;
+    public String getGatewayID() {
+        return gatewayID;
     }
 
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
+    public void setGatewayID(String gatewayID) {
+        this.gatewayID = gatewayID;
     }
 
     public String getResourceId() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
index d454852..0192f79 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserComputeResourcePreferencePK.java
@@ -24,13 +24,11 @@ package org.apache.airavata.registry.core.app.catalog.model;
 import java.io.Serializable;
 
 public class UserComputeResourcePreferencePK implements Serializable {
-    private String gatewayId;
     private String resourceId;
     private String userId;
 
-    public UserComputeResourcePreferencePK(String userId, String gatewayId, String resourceId) {
+    public UserComputeResourcePreferencePK(String userId, String resourceId) {
         this.userId = userId;
-        this.gatewayId = gatewayId;
         this.resourceId = resourceId;
     }
 
@@ -55,14 +53,6 @@ public class UserComputeResourcePreferencePK implements Serializable {
         this.userId = userId;
     }
 
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
     public String getResourceId() {
         return resourceId;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
index 6d570de..9156168 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserResourceProfile.java
@@ -31,11 +31,12 @@ import java.sql.Timestamp;
 @Entity
 @Table(name = "USER_RESOURCE_PROFILE")
 public class UserResourceProfile implements Serializable {
+
     @Id
     @Column(name = "USER_ID")
     private String userId;
 
-    @Id
+
     @Column(name = "GATEWAY_ID")
     private String gatewayID;
 
@@ -79,6 +80,10 @@ public class UserResourceProfile implements Serializable {
         return gatewayID;
     }
 
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
     public void setGatewayID(String gatewayID) {
         this.gatewayID = gatewayID;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
index 49915b5..3efbd7b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreference.java
@@ -26,14 +26,13 @@ import javax.persistence.*;
 
 @Entity
 @Table(name = "USER_STORAGE_PREFERENCE")
-@IdClass(StoragePreferencePK.class)
+@IdClass(UserStoragePreferencePK.class)
 public class UserStoragePreference {
     @Id
     @Column(name = "USER_ID")
     private String userId;
-    @Id
     @Column(name = "GATEWAY_ID")
-    private String gatewayId;
+    private String gatewayID;
     @Id
     @Column(name = "STORAGE_RESOURCE_ID")
     private String storageResourceId;
@@ -45,7 +44,7 @@ public class UserStoragePreference {
     private String computeResourceCSToken;
 
     @ManyToOne(cascade= CascadeType.MERGE)
-    @JoinColumn(name = "GATEWAY_ID")
+    @JoinColumn(name = "USER_ID")
     private UserResourceProfile userResourceProfile;
 
     public String getUserId() {
@@ -56,12 +55,12 @@ public class UserStoragePreference {
         this.userId = userId;
     }
 
-    public String getGatewayId() {
-        return gatewayId;
+    public String getGatewayID() {
+        return gatewayID;
     }
 
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
+    public void setGatewayID(String gatewayID) {
+        this.gatewayID = gatewayID;
     }
 
     public UserResourceProfile getUserResourceProfile() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
index 35a6f42..7943b5a 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/model/UserStoragePreferencePK.java
@@ -26,7 +26,6 @@ import java.io.Serializable;
 public class UserStoragePreferencePK implements Serializable {
 
     private String userId;
-    private String gatewayId;
     private String storageResourceId;
 
     public UserStoragePreferencePK(String userId, String storageResourceId) {
@@ -55,14 +54,6 @@ public class UserStoragePreferencePK implements Serializable {
         this.userId = userId;
     }
 
-    public String getGatewayId() {
-        return gatewayId;
-    }
-
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
-    }
-
     public String getStorageResourceId() {
         return storageResourceId;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
index 0846a47..c968175 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/AppCatAbstractResource.java
@@ -54,7 +54,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public static final String APPLICATION_OUTPUT = "ApplicationIntOutput";
     public static final String WORKFLOW_OUTPUT = "WorkflowOutput";
     public static final String GATEWAY_PROFILE = "GatewayProfile";
-    public static final String USER_RESOURCE_PROFILE = "userResourceProfile";
+    public static final String USER_RESOURCE_PROFILE = "UserResourceProfile";
     public static final String COMPUTE_RESOURCE_PREFERENCE = "ComputeResourcePreference";
     public static final String USER_COMPUTE_RESOURCE_PREFERENCE = "UserComputeResourcePreference";
     public static final String STORAGE_PREFERENCE = "StoragePreference";
@@ -89,7 +89,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public final class GatewayClientCredentialConstants {
         public static final String CLIENT_KEY = "clientKey";
         public static final String CLIENT_SECRET = "clientSecret";
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
     }
 
 
@@ -201,7 +201,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
 
     public final class ApplicationModuleConstants {
         public static final String MODULE_ID = "moduleID";
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String MODULE_NAME = "moduleName";
         public static final String MODULE_VERSION = "moduleVersion";
         public static final String MODULE_DESC = "moduleDesc";
@@ -211,7 +211,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String APP_MODULE_ID = "appModuleID";
         public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String COMPUTE_HOST_ID = "hostID";
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String EXECUTABLE_PATH = "executablePath";
         public static final String APPLICATION_DESC = "applicationDesc";
         public static final String ENV_MODULE_LOAD_CMD = "envModuleLoaString";
@@ -239,7 +239,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     public final class ApplicationInterfaceConstants {
         public static final String INTERFACE_ID = "interfaceID";
         public static final String APPLICATION_NAME = "appName";
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
     }
 
     public final class AppModuleMappingConstants {
@@ -295,7 +295,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     }
 
     public final class ComputeResourcePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String RESOURCE_ID = "resourceId";
         public static final String OVERRIDE_BY_AIRAVATA = "overrideByAiravata";
         public static final String PREFERED_JOB_SUB_PROTOCOL = "preferedJobSubmissionProtocol";
@@ -306,7 +306,7 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     }
 
     public final class UserComputeResourcePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String USER_ID = "userId";
         public static final String RESOURCE_ID = "resourceId";
         public static final String PREFERED_BATCH_QUEUE = "batchQueue";
@@ -356,12 +356,12 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
     }
 
     public final class StoragePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String STORAGE_ID = "storageResourceId";
     }
 
     public final class UserStoragePreferenceConstants {
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
         public static final String USER_ID = "userId";
         public static final String STORAGE_ID = "storageResourceId";
     }
@@ -438,6 +438,6 @@ public abstract class AppCatAbstractResource implements AppCatalogResource {
         public static final String CREATED_USER = "createdUser";
         public static final String GRAPH = "graph";
         public static final String WF_TEMPLATE_ID = "wfTemplateId";
-        public static final String GATEWAY_ID = "gatewayId";
+        public static final String GATEWAY_ID = "gatewayID";
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
index 180625b..4bbd952 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserComputeHostPreferenceResource.java
@@ -23,13 +23,14 @@ package org.apache.airavata.registry.core.app.catalog.resources;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.registry.core.app.catalog.model.ComputeResource;
-import org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile;
 import org.apache.airavata.registry.core.app.catalog.model.UserComputeResourcePreference;
 import org.apache.airavata.registry.core.app.catalog.model.UserComputeResourcePreferencePK;
+import org.apache.airavata.registry.core.app.catalog.model.UserResourceProfile;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
 import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,13 +38,11 @@ import javax.persistence.EntityManager;
 import javax.persistence.Query;
 import java.sql.Timestamp;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
     private final static Logger logger = LoggerFactory.getLogger(UserComputeHostPreferenceResource.class);
-    private String gatewayId;
+    private String gatewayID;
     private String resourceId;
     private String userId;
     private String batchQueue;
@@ -76,11 +75,11 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
     }
 
     public String getGatewayId() {
-        return gatewayId;
+        return gatewayID;
     }
 
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
+    public void setGatewayId(String gatewayID) {
+        this.gatewayID = gatewayID;
     }
 
     public String getResourceId() {
@@ -174,12 +173,12 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
 
     @Override
     public void remove(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
@@ -187,8 +186,8 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_COMPUTE_RESOURCE_PREFERENCE);
-            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID));
-            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.get(UserComputeResourcePreferenceConstants.USER_ID));
+            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.getSecondLevelIdentifier().toString());
 
             Query q = generator.deleteQuery(em);
             q.executeUpdate();
@@ -214,12 +213,12 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
 
     @Override
     public AppCatalogResource get(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
@@ -227,8 +226,8 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_COMPUTE_RESOURCE_PREFERENCE);
-            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID));
-            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.get(UserComputeResourcePreferenceConstants.USER_ID));
+            generator.setParameter(UserComputeResourcePreferenceConstants.RESOURCE_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.getSecondLevelIdentifier().toString());
             Query q = generator.selectQuery(em);
             UserComputeResourcePreference preference = (UserComputeResourcePreference) q.getSingleResult();
             UserComputeHostPreferenceResource preferenceResource =
@@ -281,7 +280,15 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
                     }
                 }
             } else if (fieldName.equals(UserComputeResourcePreferenceConstants.USER_ID)) {
-                generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, value);
+                CompositeIdentifier ids;
+                if (value instanceof CompositeIdentifier) {
+                    ids = (CompositeIdentifier) value;
+                } else {
+                    logger.error("Identifier should be a instance of CompositeIdentifier class");
+                    throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
+                }
+                generator.setParameter(UserComputeResourcePreferenceConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+                generator.setParameter(UserComputeResourcePreferenceConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
                 q = generator.selectQuery(em);
                 results = q.getResultList();
                 if (results.size() != 0) {
@@ -347,7 +354,7 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
         EntityManager em = null;
         try {
             em = AppCatalogJPAUtils.getEntityManager();
-            UserComputeResourcePreference existingPreference = em.find(UserComputeResourcePreference.class, new UserComputeResourcePreferencePK(userId, gatewayId, resourceId));
+            UserComputeResourcePreference existingPreference = em.find(UserComputeResourcePreference.class, new UserComputeResourcePreferencePK(userId, resourceId));
             if (em.isOpen()) {
                 if (em.getTransaction().isActive()){
                     em.getTransaction().rollback();
@@ -361,8 +368,8 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
             UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, userId);
             if (existingPreference != null) {
                 existingPreference.setResourceId(resourceId);
-                existingPreference.setGatewayId(userId);
-                existingPreference.setGatewayId(gatewayId);
+                existingPreference.setUserId(userId);
+                existingPreference.setGatewayID(gatewayID);
                 existingPreference.setComputeHostResource(computeResource);
                 existingPreference.setUserResouceProfile(userResourceProfile);
                 existingPreference.setScratchLocation(scratchLocation);
@@ -378,8 +385,8 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
             } else {
                 UserComputeResourcePreference resourcePreference = new UserComputeResourcePreference();
                 resourcePreference.setResourceId(resourceId);
-                resourcePreference.setGatewayId(gatewayId);
-                resourcePreference.setGatewayId(userId);
+                resourcePreference.setGatewayID(gatewayID);
+                resourcePreference.setUserId(userId);
                 resourcePreference.setComputeHostResource(computeResource);
                 resourcePreference.setScratchLocation(scratchLocation);
                 resourcePreference.setProjectNumber(projectNumber);
@@ -414,21 +421,20 @@ public class UserComputeHostPreferenceResource extends AppCatAbstractResource {
 
     @Override
     public boolean isExists(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
         try {
             em = AppCatalogJPAUtils.getEntityManager();
             UserComputeResourcePreference existingPreference = em.find(UserComputeResourcePreference.class,
-                    new UserComputeResourcePreferencePK(ids.get(UserComputeResourcePreferenceConstants.USER_ID),
-                            ids.get(UserComputeResourcePreferenceConstants.GATEWAY_ID),
-                            ids.get(UserComputeResourcePreferenceConstants.RESOURCE_ID)));
+                    new UserComputeResourcePreferencePK(ids.getTopLevelIdentifier().toString(),
+                            ids.getSecondLevelIdentifier().toString()));
             if (em.isOpen()) {
                 if (em.getTransaction().isActive()){
                     em.getTransaction().rollback();

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
index 208c835..ed27935 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserResourceProfileResource.java
@@ -26,6 +26,7 @@ import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
 import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -106,12 +107,19 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
 
     public void remove(Object identifier) throws AppCatalogException {
         EntityManager em = null;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
+        } else {
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
+        }
         try {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
-            generator.setParameter(UserResourceProfileConstants.GATEWAY_ID, identifier);
-            generator.setParameter(UserResourceProfileConstants.USER_ID, identifier);
+            generator.setParameter(UserResourceProfileConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
+            generator.setParameter(UserResourceProfileConstants.USER_ID, ids.getTopLevelIdentifier().toString());
             Query q = generator.deleteQuery(em);
             q.executeUpdate();
             em.getTransaction().commit();
@@ -136,11 +144,20 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
 
     public AppCatalogResource get(Object identifier) throws AppCatalogException {
         EntityManager em = null;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
+        } else {
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
+        }
         try {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
-            generator.setParameter(UserResourceProfileConstants.USER_ID, identifier);
+            logger.info(userId,"retrieved userId at UserREsourceProfileREsource : " + ids.getTopLevelIdentifier());
+            generator.setParameter(UserResourceProfileConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserResourceProfileConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
             Query q = generator.selectQuery(em);
             UserResourceProfile userResourceProfile = (UserResourceProfile) q.getSingleResult();
             UserResourceProfileResource userResourceProfileResource =
@@ -167,15 +184,15 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
         }
     }
 
-    public List<AppCatalogResource> get(String userId, Object value) throws AppCatalogException {
+    public List<AppCatalogResource> get(String fieldName, Object value) throws AppCatalogException {
         List<AppCatalogResource> userResourceProfileResources = new ArrayList<AppCatalogResource>();
         EntityManager em = null;
-        HashMap<String, String> ids;
-        if (value instanceof Map) {
-            ids = (HashMap) value;
+        CompositeIdentifier ids;
+        if (value instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) value;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
         try {
             em = AppCatalogJPAUtils.getEntityManager();
@@ -183,8 +200,9 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
             Query q;
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
             List results;
-            if (userId.equals(UserResourceProfileConstants.USER_ID)) {
-                generator.setParameter(UserResourceProfileConstants.USER_ID, ids.get(UserResourceProfileConstants.USER_ID));
+            if (fieldName.equals(UserResourceProfileConstants.USER_ID)) {
+                generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+                generator.setParameter(UserStoragePreferenceConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
                 q = generator.selectQuery(em);
                 results = q.getResultList();
                 if (results.size() != 0) {
@@ -358,7 +376,7 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
             } else {
                 UserResourceProfile userResourceProfile = new UserResourceProfile();
                 userResourceProfile.setGatewayID(gatewayID);
-                userResourceProfile.setGatewayID(userId);
+                userResourceProfile.setUserId(userId);
                 userResourceProfile.setCreationTime(AiravataUtils.getCurrentTimestamp());
                 if (credentialStoreToken != null){
                     userResourceProfile.setCredentialStoreToken(credentialStoreToken);
@@ -393,23 +411,30 @@ public class UserResourceProfileResource extends AppCatAbstractResource {
 
     public boolean isExists(Object identifier) throws AppCatalogException {
         EntityManager em = null;
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
         try {
             em = AppCatalogJPAUtils.getEntityManager();
-            UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, ids.get(UserResourceProfileConstants.USER_ID));
+            em.getTransaction().begin();
+            Query q;
+            AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_RESOURCE_PROFILE);
+            List results;
+            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserStoragePreferenceConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
+            q = generator.selectQuery(em);
+            results = q.getResultList();
             if (em.isOpen()) {
                 if (em.getTransaction().isActive()){
                     em.getTransaction().rollback();
                 }
                 em.close();
             }
-            return userResourceProfile != null;
+            return results != null;
         } catch (ApplicationSettingsException e) {
             logger.error(e.getMessage(), e);
             throw new AppCatalogException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
index 37dadc6..b43dfbd 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/resources/UserStoragePreferenceResource.java
@@ -29,19 +29,18 @@ import org.apache.airavata.registry.core.app.catalog.util.AppCatalogJPAUtils;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogQueryGenerator;
 import org.apache.airavata.registry.core.app.catalog.util.AppCatalogResourceType;
 import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 public class UserStoragePreferenceResource extends AppCatAbstractResource {
     private final static Logger logger = LoggerFactory.getLogger(UserStoragePreferenceResource.class);
-    private String gatewayId;
+    private String gatewayID;
     private String userId;
     private String storageResourceId;
     private String loginUserName;
@@ -68,11 +67,11 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
     }
 
     public String getGatewayId() {
-        return gatewayId;
+        return gatewayID;
     }
 
-    public void setGatewayId(String gatewayId) {
-        this.gatewayId = gatewayId;
+    public void setGatewayId(String gatewayID) {
+        this.gatewayID = gatewayID;
     }
 
     public UserResourceProfileResource getUserResourceProfileResource() {
@@ -109,12 +108,12 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
 
     @Override
     public void remove(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
@@ -122,8 +121,8 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_STORAGE_PREFERENCE);
-            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.get(UserStoragePreferenceConstants.STORAGE_ID));
-            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.get(UserStoragePreferenceConstants.USER_ID));
+            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.getSecondLevelIdentifier().toString());
 
             Query q = generator.deleteQuery(em);
             q.executeUpdate();
@@ -149,12 +148,12 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
 
     @Override
     public AppCatalogResource get(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
@@ -162,8 +161,8 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
             em = AppCatalogJPAUtils.getEntityManager();
             em.getTransaction().begin();
             AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(USER_STORAGE_PREFERENCE);
-            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.get(UserStoragePreferenceConstants.USER_ID));
-            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.get(UserStoragePreferenceConstants.STORAGE_ID));
+            generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+            generator.setParameter(UserStoragePreferenceConstants.STORAGE_ID, ids.getSecondLevelIdentifier().toString());
             Query q = generator.selectQuery(em);
             UserStoragePreference preference = (UserStoragePreference) q.getSingleResult();
             UserStoragePreferenceResource preferenceResource =
@@ -216,7 +215,15 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
                     }
                 }
             } else if (fieldName.equals(UserStoragePreferenceConstants.USER_ID)) {
-                generator.setParameter(UserStoragePreferenceConstants.USER_ID, value);
+                CompositeIdentifier ids;
+                if (value instanceof CompositeIdentifier) {
+                    ids = (CompositeIdentifier) value;
+                } else {
+                    logger.error("Identifier should be a instance of CompositeIdentifier class");
+                    throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
+                }
+                generator.setParameter(UserStoragePreferenceConstants.USER_ID, ids.getTopLevelIdentifier().toString());
+                generator.setParameter(UserStoragePreferenceConstants.GATEWAY_ID, ids.getSecondLevelIdentifier().toString());
                 q = generator.selectQuery(em);
                 results = q.getResultList();
                 if (results.size() != 0) {
@@ -295,8 +302,8 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
             UserResourceProfile userResourceProfile = em.find(UserResourceProfile.class, userId);
             if (existingPreference != null) {
                 existingPreference.setStorageResourceId(storageResourceId);
-                existingPreference.setGatewayId(userId);
-                existingPreference.setGatewayId(gatewayId);
+                existingPreference.setGatewayID(userId);
+                existingPreference.setGatewayID(gatewayID);
                 existingPreference.setUserResourceProfile(userResourceProfile);
                 existingPreference.setLoginUserName(loginUserName);
                 existingPreference.setComputeResourceCSToken(resourceCSToken);
@@ -305,8 +312,8 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
             } else {
                 UserStoragePreference resourcePreference = new UserStoragePreference();
                 resourcePreference.setStorageResourceId(storageResourceId);
-                resourcePreference.setGatewayId(gatewayId);
-                resourcePreference.setGatewayId(userId);
+                resourcePreference.setGatewayID(gatewayID);
+                resourcePreference.setGatewayID(userId);
                 resourcePreference.setUserResourceProfile(userResourceProfile);
                 resourcePreference.setLoginUserName(loginUserName);
                 resourcePreference.setComputeResourceCSToken(resourceCSToken);
@@ -335,20 +342,20 @@ public class UserStoragePreferenceResource extends AppCatAbstractResource {
 
     @Override
     public boolean isExists(Object identifier) throws AppCatalogException {
-        HashMap<String, String> ids;
-        if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+        CompositeIdentifier ids;
+        if (identifier instanceof CompositeIdentifier) {
+            ids = (CompositeIdentifier) identifier;
         } else {
-            logger.error("Identifier should be a map with the field name and it's value");
-            throw new AppCatalogException("Identifier should be a map with the field name and it's value");
+            logger.error("Identifier should be a instance of CompositeIdentifier class");
+            throw new AppCatalogException("Identifier should be a instance of CompositeIdentifier class");
         }
 
         EntityManager em = null;
         try {
             em = AppCatalogJPAUtils.getEntityManager();
             UserStoragePreference existingPreference = em.find(UserStoragePreference.class,
-                    new UserStoragePreferencePK(ids.get(UserStoragePreferenceConstants.USER_ID),
-                            ids.get(UserStoragePreferenceConstants.STORAGE_ID)));
+                    new UserStoragePreferencePK(ids.getTopLevelIdentifier().toString(),
+                            ids.getSecondLevelIdentifier().toString()));
             if (em.isOpen()) {
                 if (em.getTransaction().isActive()){
                     em.getTransaction().rollback();

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
index a62259b..1f37786 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/app/catalog/util/AppCatalogJPAUtils.java
@@ -272,6 +272,13 @@ public class AppCatalogJPAUtils {
                     logger.error("Object should be a GatewayProfile.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a GatewayProfile.");
                 }
+            case USER_RESOURCE_PROFILE:
+                if (o instanceof UserResourceProfile) {
+                    return createUserResourceProfile((UserResourceProfile) o);
+                } else {
+                    logger.error("Object should be a UserResourceProfile.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a UserResourceProfile.");
+                }
             case COMPUTE_RESOURCE_PREFERENCE:
                 if (o instanceof ComputeResourcePreference) {
                     return createComputeResourcePref((ComputeResourcePreference) o);
@@ -279,6 +286,13 @@ public class AppCatalogJPAUtils {
                     logger.error("Object should be a Compute Resource Preference.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a Compute Resource Preference.");
                 }
+            case USER_COMPUTE_RESOURCE_PREFERENCE:
+                if (o instanceof UserComputeResourcePreference) {
+                    return createUserComputeResourcePref((UserComputeResourcePreference) o);
+                } else {
+                    logger.error("Object should be a User Compute Resource Preference.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a User Compute Resource Preference.");
+                }
             case STORAGE_PREFERENCE:
                 if (o instanceof StoragePreference) {
                     return createStoragePref((StoragePreference) o);
@@ -286,6 +300,13 @@ public class AppCatalogJPAUtils {
                     logger.error("Object should be a data storage Preference.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a data storage Preference.");
                 }
+            case USER_STORAGE_PREFERENCE:
+                if (o instanceof UserStoragePreference) {
+                    return createUserStoragePref((UserStoragePreference) o);
+                } else {
+                    logger.error("Object should be a User data storage Preference.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a User data storage Preference.");
+                }
             case STORAGE_RESOURCE:
                 if (o instanceof StorageResource) {
                     return createStorageResource((StorageResource) o);
@@ -857,6 +878,22 @@ public class AppCatalogJPAUtils {
         return resource;
     }
 
+    private static AppCatalogResource createUserResourceProfile(UserResourceProfile o) {
+        UserResourceProfileResource resource = new UserResourceProfileResource();
+        if (o != null) {
+            resource.setGatewayID(o.getGatewayID());
+            resource.setUserId(o.getUserID());
+            resource.setCreatedTime(o.getCreationTime());
+            resource.setCredentialStoreToken(o.getCredentialStoreToken());
+            resource.setIdentityServerTenant(o.getIdentityServerTenant());
+            resource.setIdentityServerPwdCredToken(o.getIdentityServerPwdCredToken());
+            if (o.getUpdateTime() != null) {
+                resource.setUpdatedTime(o.getUpdateTime());
+            }
+        }
+        return resource;
+    }
+
     private static AppCatalogResource createComputeResourcePref(ComputeResourcePreference o) {
         ComputeHostPreferenceResource resource = new ComputeHostPreferenceResource();
         if (o != null) {
@@ -881,6 +918,27 @@ public class AppCatalogJPAUtils {
         return resource;
     }
 
+    private static AppCatalogResource createUserComputeResourcePref(UserComputeResourcePreference o) {
+        UserComputeHostPreferenceResource resource = new UserComputeHostPreferenceResource();
+        if (o != null) {
+            resource.setGatewayId(o.getGatewayID());
+            resource.setUserId(o.getUserId());
+            resource.setResourceId(o.getResourceId());
+            resource.setBatchQueue(o.getBatchQueue());
+            resource.setScratchLocation(o.getScratchLocation());
+            resource.setProjectNumber(o.getProjectNumber());
+            resource.setLoginUserName(o.getLoginUserName());
+            resource.setResourceCSToken(o.getComputeResourceCSToken());
+            resource.setComputeHostResource((ComputeResourceResource) createComputeResource(o.getComputeHostResource()));
+            resource.setUserResourceProfileResource((UserResourceProfileResource) createUserResourceProfile(o.getUserResouceProfile()));
+            resource.setQualityOfService(o.getQualityOfService());
+            resource.setReservation(o.getReservation());
+            resource.setReservationStartTime(o.getReservationStartTime());
+            resource.setReservationEndTime(o.getReservationEndTime());
+        }
+        return resource;
+    }
+
     private static AppCatalogResource createStoragePref(StoragePreference o) {
         StoragePreferenceResource resource = new StoragePreferenceResource();
         if (o != null) {
@@ -894,6 +952,20 @@ public class AppCatalogJPAUtils {
         return resource;
     }
 
+    private static AppCatalogResource createUserStoragePref(UserStoragePreference o) {
+        UserStoragePreferenceResource resource = new UserStoragePreferenceResource();
+        if (o != null) {
+            resource.setGatewayId(o.getGatewayID());
+            resource.setUserId(o.getUserId());
+            resource.setStorageResourceId(o.getStorageResourceId());
+            resource.setLoginUserName(o.getLoginUserName());
+            resource.setResourceCSToken(o.getComputeResourceCSToken());
+            resource.setFsRootLocation(o.getFsRootLocation());
+            resource.setUserResourceProfileResource((UserResourceProfileResource) createUserResourceProfile(o.getUserResourceProfile()));
+        }
+        return resource;
+    }
+
     private static AppCatalogResource createStorageResource(StorageResource o) {
         StorageResourceResource resource = new StorageResourceResource();
         if (o != null) {


[02/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
index 36420b7..ecd0a0b 100644
--- a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
+++ b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/RegistryService.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-08-09")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
 public class RegistryService {
 
   public interface Iface {
@@ -2057,20 +2057,285 @@ public class RegistryService {
     public boolean deleteGatewayStoragePreference(String gatewayID, String storageId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
     /**
-     * Delete the Storage Resource Preference of a registered gateway profile.
+     * Register a User Resource Profile.
+     * 
+     * @param userResourceProfile
+     *    User Resource Profile Object.
+     *    The userId should be obtained from Airavata user profile and passed to register a corresponding
+     *      resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param userResourceProfile
+     */
+    public String registerUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Fetch the given User Resource Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested User Resource resource.
      * 
      * @param gatewayID
-     *   The identifier of the gateway profile to be deleted.
+     *   The identifier to link gateway for the requested User Resource resource.
      * 
-     * @param storageId
+     * @return userResourceProfile
+     *    User Resource Profile Object.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getUserResourceProfile(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a User Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userResourceProfile
+     *    User Resource Profile Object.
+     * 
+     * @return status
+     *   Returns a success/failure of the update.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userResourceProfile
+     */
+    public boolean updateUserResourceProfile(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete the given User Resource Profile.
+     * 
+     * @param userId
+     *   The identifier for the requested user resource to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     */
+    public boolean deleteUserResourceProfile(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Add a Compute Resource Preference to a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user resource profile to be added.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param computeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param computeResourcePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param computeResourceId
+     * @param userComputeResourcePreference
+     */
+    public boolean addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Add a Storage Resource Preference to a registered user profile.
+     * 
+     * @param userId
+     *   The identifier of the userId profile to be added.
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userStorageResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param userStoragePreference
+     *   The ComputeResourcePreference object to be added to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+     *    Instead an update should be used.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userStorageResourceId
+     * @param userStoragePreference
+     */
+    public boolean addUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a Compute Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user resource profile to be requested
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return userComputeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch a Storage Resource Preference of a registered user profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userStorageResourceId
+     *   Identifier of the Stprage Preference required to be fetched.
+     * 
+     * @return UserStoragePreference
+     *   Returns the StoragePreference object.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userStorageResourceId
+     */
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * 
+     * Fetch all user resource Profiles registered
+     * 
+     * @return userResourceProfile
+     *   Returns all the UserResourcePrifle list object.
+     * 
+     * 
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a Compute Resource Preference to a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user resource profile to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @param userComputeResourcePreference
+     *   The ComputeResourcePreference object to be updated to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the updation.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     * @param userComputeResourcePreference
+     */
+    public boolean updateUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Update a Storage Resource Preference of a registered user profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to be updated.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userStorageId
+     *   The Storage resource identifier of the one that you want to update
+     * 
+     * @param userStoragePreference
+     *   The storagePreference object to be updated to the resource profile.
+     * 
+     * @return status
+     *   Returns a success/failure of the updation.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userStorageId
+     * @param userStoragePreference
+     */
+    public boolean updateUserStoragePreference(String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete the Compute Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier for the user resource profile to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userComputeResourceId
+     *   Preferences related to a particular compute resource
+     * 
+     * @return status
+     *   Returns a success/failure of the deletion.
+     * 
+     * 
+     * @param userId
+     * @param gatewayID
+     * @param userComputeResourceId
+     */
+    public boolean deleteUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
+    /**
+     * Delete the Storage Resource Preference of a registered user resource profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to be deleted.
+     * 
+     * @param gatewayID
+     *   The identifier to link gateway for the requested User Resource resource.
+     * 
+     * @param userStorageId
      *   ID of the storage preference you want to delete.
      * 
      * @return status
      *   Returns a success/failure of the deletion.
      * 
      * 
-     * @param gatewayId
+     * @param userId
+     * @param gatewayID
+     * @param userStorageId
      */
+    public boolean deleteUserStoragePreference(String userId, String gatewayID, String userStorageId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
+
     public List<String> getAllWorkflows(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException;
 
     /**
@@ -2346,6 +2611,32 @@ public class RegistryService {
 
     public void deleteGatewayStoragePreference(String gatewayID, String storageId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void registerUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getUserResourceProfile(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateUserResourceProfile(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteUserResourceProfile(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void addUserStoragePreference(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 void getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void getAllUserResourceProfiles(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void updateUserComputeResourcePreference(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 void updateUserStoragePreference(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 void deleteUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+    public void deleteUserStoragePreference(String userId, String gatewayID, String userStorageId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
     public void getAllWorkflows(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void getWorkflow(String workflowTemplateId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -5505,6 +5796,367 @@ public class RegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result");
     }
 
+    public String registerUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_registerUserResourceProfile(userResourceProfile);
+      return recv_registerUserResourceProfile();
+    }
+
+    public void send_registerUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.thrift.TException
+    {
+      registerUserResourceProfile_args args = new registerUserResourceProfile_args();
+      args.setUserResourceProfile(userResourceProfile);
+      sendBase("registerUserResourceProfile", args);
+    }
+
+    public String recv_registerUserResourceProfile() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      registerUserResourceProfile_result result = new registerUserResourceProfile_result();
+      receiveBase(result, "registerUserResourceProfile");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "registerUserResourceProfile failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getUserResourceProfile(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getUserResourceProfile(userId, gatewayID);
+      return recv_getUserResourceProfile();
+    }
+
+    public void send_getUserResourceProfile(String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getUserResourceProfile_args args = new getUserResourceProfile_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getUserResourceProfile", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile recv_getUserResourceProfile() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getUserResourceProfile_result result = new getUserResourceProfile_result();
+      receiveBase(result, "getUserResourceProfile");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserResourceProfile failed: unknown result");
+    }
+
+    public boolean updateUserResourceProfile(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_updateUserResourceProfile(userId, gatewayID, userResourceProfile);
+      return recv_updateUserResourceProfile();
+    }
+
+    public void send_updateUserResourceProfile(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile) throws org.apache.thrift.TException
+    {
+      updateUserResourceProfile_args args = new updateUserResourceProfile_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserResourceProfile(userResourceProfile);
+      sendBase("updateUserResourceProfile", args);
+    }
+
+    public boolean recv_updateUserResourceProfile() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+      receiveBase(result, "updateUserResourceProfile");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateUserResourceProfile failed: unknown result");
+    }
+
+    public boolean deleteUserResourceProfile(String userId, String gatewayID) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_deleteUserResourceProfile(userId, gatewayID);
+      return recv_deleteUserResourceProfile();
+    }
+
+    public void send_deleteUserResourceProfile(String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      deleteUserResourceProfile_args args = new deleteUserResourceProfile_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("deleteUserResourceProfile", args);
+    }
+
+    public boolean recv_deleteUserResourceProfile() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+      receiveBase(result, "deleteUserResourceProfile");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteUserResourceProfile failed: unknown result");
+    }
+
+    public boolean addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_addUserComputeResourcePreference(userId, gatewayID, computeResourceId, userComputeResourcePreference);
+      return recv_addUserComputeResourcePreference();
+    }
+
+    public void send_addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.thrift.TException
+    {
+      addUserComputeResourcePreference_args args = new addUserComputeResourcePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setComputeResourceId(computeResourceId);
+      args.setUserComputeResourcePreference(userComputeResourcePreference);
+      sendBase("addUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_addUserComputeResourcePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+      receiveBase(result, "addUserComputeResourcePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean addUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_addUserStoragePreference(userId, gatewayID, userStorageResourceId, userStoragePreference);
+      return recv_addUserStoragePreference();
+    }
+
+    public void send_addUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.thrift.TException
+    {
+      addUserStoragePreference_args args = new addUserStoragePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageResourceId(userStorageResourceId);
+      args.setUserStoragePreference(userStoragePreference);
+      sendBase("addUserStoragePreference", args);
+    }
+
+    public boolean recv_addUserStoragePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      addUserStoragePreference_result result = new addUserStoragePreference_result();
+      receiveBase(result, "addUserStoragePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "addUserStoragePreference failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
+      return recv_getUserComputeResourcePreference();
+    }
+
+    public void send_getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.thrift.TException
+    {
+      getUserComputeResourcePreference_args args = new getUserComputeResourcePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      sendBase("getUserComputeResourcePreference", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference recv_getUserComputeResourcePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+      receiveBase(result, "getUserComputeResourcePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserComputeResourcePreference failed: unknown result");
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getUserStoragePreference(userId, gatewayID, userStorageResourceId);
+      return recv_getUserStoragePreference();
+    }
+
+    public void send_getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId) throws org.apache.thrift.TException
+    {
+      getUserStoragePreference_args args = new getUserStoragePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageResourceId(userStorageResourceId);
+      sendBase("getUserStoragePreference", args);
+    }
+
+    public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference recv_getUserStoragePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getUserStoragePreference_result result = new getUserStoragePreference_result();
+      receiveBase(result, "getUserStoragePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserStoragePreference failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_getAllUserResourceProfiles();
+      return recv_getAllUserResourceProfiles();
+    }
+
+    public void send_getAllUserResourceProfiles() throws org.apache.thrift.TException
+    {
+      getAllUserResourceProfiles_args args = new getAllUserResourceProfiles_args();
+      sendBase("getAllUserResourceProfiles", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> recv_getAllUserResourceProfiles() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+      receiveBase(result, "getAllUserResourceProfiles");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getAllUserResourceProfiles failed: unknown result");
+    }
+
+    public boolean updateUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_updateUserComputeResourcePreference(userId, gatewayID, userComputeResourceId, userComputeResourcePreference);
+      return recv_updateUserComputeResourcePreference();
+    }
+
+    public void send_updateUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference) throws org.apache.thrift.TException
+    {
+      updateUserComputeResourcePreference_args args = new updateUserComputeResourcePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      args.setUserComputeResourcePreference(userComputeResourcePreference);
+      sendBase("updateUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_updateUserComputeResourcePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+      receiveBase(result, "updateUserComputeResourcePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean updateUserStoragePreference(String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_updateUserStoragePreference(userId, gatewayID, userStorageId, userStoragePreference);
+      return recv_updateUserStoragePreference();
+    }
+
+    public void send_updateUserStoragePreference(String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference) throws org.apache.thrift.TException
+    {
+      updateUserStoragePreference_args args = new updateUserStoragePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageId(userStorageId);
+      args.setUserStoragePreference(userStoragePreference);
+      sendBase("updateUserStoragePreference", args);
+    }
+
+    public boolean recv_updateUserStoragePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+      receiveBase(result, "updateUserStoragePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateUserStoragePreference failed: unknown result");
+    }
+
+    public boolean deleteUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_deleteUserComputeResourcePreference(userId, gatewayID, userComputeResourceId);
+      return recv_deleteUserComputeResourcePreference();
+    }
+
+    public void send_deleteUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId) throws org.apache.thrift.TException
+    {
+      deleteUserComputeResourcePreference_args args = new deleteUserComputeResourcePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserComputeResourceId(userComputeResourceId);
+      sendBase("deleteUserComputeResourcePreference", args);
+    }
+
+    public boolean recv_deleteUserComputeResourcePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+      receiveBase(result, "deleteUserComputeResourcePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteUserComputeResourcePreference failed: unknown result");
+    }
+
+    public boolean deleteUserStoragePreference(String userId, String gatewayID, String userStorageId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      send_deleteUserStoragePreference(userId, gatewayID, userStorageId);
+      return recv_deleteUserStoragePreference();
+    }
+
+    public void send_deleteUserStoragePreference(String userId, String gatewayID, String userStorageId) throws org.apache.thrift.TException
+    {
+      deleteUserStoragePreference_args args = new deleteUserStoragePreference_args();
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      args.setUserStorageId(userStorageId);
+      sendBase("deleteUserStoragePreference", args);
+    }
+
+    public boolean recv_deleteUserStoragePreference() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
+    {
+      deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+      receiveBase(result, "deleteUserStoragePreference");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      if (result.rse != null) {
+        throw result.rse;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteUserStoragePreference failed: unknown result");
+    }
+
     public List<String> getAllWorkflows(String gatewayId) throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException
     {
       send_getAllWorkflows(gatewayId);
@@ -9824,6 +10476,491 @@ public class RegistryService {
       }
     }
 
+    public void registerUserResourceProfile(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      registerUserResourceProfile_call method_call = new registerUserResourceProfile_call(userResourceProfile, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class registerUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile;
+      public registerUserResourceProfile_call(org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userResourceProfile = userResourceProfile;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("registerUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        registerUserResourceProfile_args args = new registerUserResourceProfile_args();
+        args.setUserResourceProfile(userResourceProfile);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public String getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_registerUserResourceProfile();
+      }
+    }
+
+    public void getUserResourceProfile(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getUserResourceProfile_call method_call = new getUserResourceProfile_call(userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      public getUserResourceProfile_call(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserResourceProfile_args args = new getUserResourceProfile_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getUserResourceProfile();
+      }
+    }
+
+    public void updateUserResourceProfile(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      updateUserResourceProfile_call method_call = new updateUserResourceProfile_call(userId, gatewayID, userResourceProfile, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile;
+      public updateUserResourceProfile_call(String userId, String gatewayID, org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile userResourceProfile, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userResourceProfile = userResourceProfile;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserResourceProfile_args args = new updateUserResourceProfile_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserResourceProfile(userResourceProfile);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserResourceProfile();
+      }
+    }
+
+    public void deleteUserResourceProfile(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteUserResourceProfile_call method_call = new deleteUserResourceProfile_call(userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserResourceProfile_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      public deleteUserResourceProfile_call(String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteUserResourceProfile", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteUserResourceProfile_args args = new deleteUserResourceProfile_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_deleteUserResourceProfile();
+      }
+    }
+
+    public void addUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      addUserComputeResourcePreference_call method_call = new addUserComputeResourcePreference_call(userId, gatewayID, computeResourceId, userComputeResourcePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String computeResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference;
+      public addUserComputeResourcePreference_call(String userId, String gatewayID, String computeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.computeResourceId = computeResourceId;
+        this.userComputeResourcePreference = userComputeResourcePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addUserComputeResourcePreference_args args = new addUserComputeResourcePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setComputeResourceId(computeResourceId);
+        args.setUserComputeResourcePreference(userComputeResourcePreference);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_addUserComputeResourcePreference();
+      }
+    }
+
+    public void addUserStoragePreference(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 {
+      checkReady();
+      addUserStoragePreference_call method_call = new addUserStoragePreference_call(userId, gatewayID, userStorageResourceId, userStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class addUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userStorageResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference;
+      public addUserStoragePreference_call(String userId, String gatewayID, String userStorageResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageResourceId = userStorageResourceId;
+        this.userStoragePreference = userStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("addUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        addUserStoragePreference_args args = new addUserStoragePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageResourceId(userStorageResourceId);
+        args.setUserStoragePreference(userStoragePreference);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_addUserStoragePreference();
+      }
+    }
+
+    public void getUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getUserComputeResourcePreference_call method_call = new getUserComputeResourcePreference_call(userId, gatewayID, userComputeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      public getUserComputeResourcePreference_call(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserComputeResourcePreference_args args = new getUserComputeResourcePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getUserComputeResourcePreference();
+      }
+    }
+
+    public void getUserStoragePreference(String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getUserStoragePreference_call method_call = new getUserStoragePreference_call(userId, gatewayID, userStorageResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userStorageResourceId;
+      public getUserStoragePreference_call(String userId, String gatewayID, String userStorageResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageResourceId = userStorageResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getUserStoragePreference_args args = new getUserStoragePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageResourceId(userStorageResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getUserStoragePreference();
+      }
+    }
+
+    public void getAllUserResourceProfiles(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      getAllUserResourceProfiles_call method_call = new getAllUserResourceProfiles_call(resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserResourceProfiles_call extends org.apache.thrift.async.TAsyncMethodCall {
+      public getAllUserResourceProfiles_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserResourceProfiles", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserResourceProfiles_args args = new getAllUserResourceProfiles_args();
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_getAllUserResourceProfiles();
+      }
+    }
+
+    public void updateUserComputeResourcePreference(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 {
+      checkReady();
+      updateUserComputeResourcePreference_call method_call = new updateUserComputeResourcePreference_call(userId, gatewayID, userComputeResourceId, userComputeResourcePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference;
+      public updateUserComputeResourcePreference_call(String userId, String gatewayID, String userComputeResourceId, org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference userComputeResourcePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+        this.userComputeResourcePreference = userComputeResourcePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserComputeResourcePreference_args args = new updateUserComputeResourcePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.setUserComputeResourcePreference(userComputeResourcePreference);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserComputeResourcePreference();
+      }
+    }
+
+    public void updateUserStoragePreference(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 {
+      checkReady();
+      updateUserStoragePreference_call method_call = new updateUserStoragePreference_call(userId, gatewayID, userStorageId, userStoragePreference, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class updateUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userStorageId;
+      private org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference;
+      public updateUserStoragePreference_call(String userId, String gatewayID, String userStorageId, org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference userStoragePreference, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageId = userStorageId;
+        this.userStoragePreference = userStoragePreference;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("updateUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        updateUserStoragePreference_args args = new updateUserStoragePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageId(userStorageId);
+        args.setUserStoragePreference(userStoragePreference);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_updateUserStoragePreference();
+      }
+    }
+
+    public void deleteUserComputeResourcePreference(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteUserComputeResourcePreference_call method_call = new deleteUserComputeResourcePreference_call(userId, gatewayID, userComputeResourceId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserComputeResourcePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userComputeResourceId;
+      public deleteUserComputeResourcePreference_call(String userId, String gatewayID, String userComputeResourceId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userComputeResourceId = userComputeResourceId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteUserComputeResourcePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteUserComputeResourcePreference_args args = new deleteUserComputeResourcePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserComputeResourceId(userComputeResourceId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_deleteUserComputeResourcePreference();
+      }
+    }
+
+    public void deleteUserStoragePreference(String userId, String gatewayID, String userStorageId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      deleteUserStoragePreference_call method_call = new deleteUserStoragePreference_call(userId, gatewayID, userStorageId, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class deleteUserStoragePreference_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String userId;
+      private String gatewayID;
+      private String userStorageId;
+      public deleteUserStoragePreference_call(String userId, String gatewayID, String userStorageId, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+        this.userStorageId = userStorageId;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteUserStoragePreference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        deleteUserStoragePreference_args args = new deleteUserStoragePreference_args();
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.setUserStorageId(userStorageId);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public boolean getResult() throws org.apache.airavata.registry.api.exception.RegistryServiceException, org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new 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_deleteUserStoragePreference();
+      }
+    }
+
     public void getAllWorkflows(String gatewayId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllWorkflows_call method_call = new getAllWorkflows_call(gatewayId, resultHandler, this, ___protocolFactory, ___transport);
@@ -10344,6 +11481,19 @@ public class RegistryService {
       processMap.put("updateGatewayStoragePreference", new updateGatewayStoragePreference());
       processMap.put("deleteGatewayComputeResourcePreference", new deleteGatewayComputeResourcePreference());
       processMap.put("deleteGatewayStoragePreference", new deleteGatewayStoragePreference());
+      processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
+      processMap.put("getUserResourceProfile", new getUserResourceProfile());
+      processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
+      processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
+      processMap.put("addUserComputeResourcePreference", new addUserComputeResourcePreference());
+      processMap.put("addUserStoragePreference", new addUserStoragePreference());
+      processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
+      processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
+      processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
+      processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
+      processMap.put("deleteUserComputeResourcePreference", new deleteUserComputeResourcePreference());
+      processMap.put("deleteUserStoragePreference", new deleteUserStoragePreference());
       processMap.put("getAllWorkflows", new getAllWorkflows());
       processMap.put("getWorkflow", new getWorkflow());
       processMap.put("deleteWorkflow", new deleteWorkflow());
@@ -13210,6 +14360,326 @@ public class RegistryService {
       }
     }
 
+    public static class registerUserResourceProfile<I extends Iface> extends org.apache.thrift.ProcessFunction<I, registerUserResourceProfile_args> {
+      public registerUserResourceProfile() {
+        super("registerUserResourceProfile");
+      }
+
+      public registerUserResourceProfile_args getEmptyArgsInstance() {
+        return new registerUserResourceProfile_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public registerUserResourceProfile_result getResult(I iface, registerUserResourceProfile_args args) throws org.apache.thrift.TException {
+        registerUserResourceProfile_result result = new registerUserResourceProfile_result();
+        try {
+          result.success = iface.registerUserResourceProfile(args.userResourceProfile);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getUserResourceProfile<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getUserResourceProfile_args> {
+      public getUserResourceProfile() {
+        super("getUserResourceProfile");
+      }
+
+      public getUserResourceProfile_args getEmptyArgsInstance() {
+        return new getUserResourceProfile_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getUserResourceProfile_result getResult(I iface, getUserResourceProfile_args args) throws org.apache.thrift.TException {
+        getUserResourceProfile_result result = new getUserResourceProfile_result();
+        try {
+          result.success = iface.getUserResourceProfile(args.userId, args.gatewayID);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class updateUserResourceProfile<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateUserResourceProfile_args> {
+      public updateUserResourceProfile() {
+        super("updateUserResourceProfile");
+      }
+
+      public updateUserResourceProfile_args getEmptyArgsInstance() {
+        return new updateUserResourceProfile_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateUserResourceProfile_result getResult(I iface, updateUserResourceProfile_args args) throws org.apache.thrift.TException {
+        updateUserResourceProfile_result result = new updateUserResourceProfile_result();
+        try {
+          result.success = iface.updateUserResourceProfile(args.userId, args.gatewayID, args.userResourceProfile);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteUserResourceProfile<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteUserResourceProfile_args> {
+      public deleteUserResourceProfile() {
+        super("deleteUserResourceProfile");
+      }
+
+      public deleteUserResourceProfile_args getEmptyArgsInstance() {
+        return new deleteUserResourceProfile_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteUserResourceProfile_result getResult(I iface, deleteUserResourceProfile_args args) throws org.apache.thrift.TException {
+        deleteUserResourceProfile_result result = new deleteUserResourceProfile_result();
+        try {
+          result.success = iface.deleteUserResourceProfile(args.userId, args.gatewayID);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class addUserComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addUserComputeResourcePreference_args> {
+      public addUserComputeResourcePreference() {
+        super("addUserComputeResourcePreference");
+      }
+
+      public addUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new addUserComputeResourcePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addUserComputeResourcePreference_result getResult(I iface, addUserComputeResourcePreference_args args) throws org.apache.thrift.TException {
+        addUserComputeResourcePreference_result result = new addUserComputeResourcePreference_result();
+        try {
+          result.success = iface.addUserComputeResourcePreference(args.userId, args.gatewayID, args.computeResourceId, args.userComputeResourcePreference);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class addUserStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, addUserStoragePreference_args> {
+      public addUserStoragePreference() {
+        super("addUserStoragePreference");
+      }
+
+      public addUserStoragePreference_args getEmptyArgsInstance() {
+        return new addUserStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public addUserStoragePreference_result getResult(I iface, addUserStoragePreference_args args) throws org.apache.thrift.TException {
+        addUserStoragePreference_result result = new addUserStoragePreference_result();
+        try {
+          result.success = iface.addUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId, args.userStoragePreference);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getUserComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getUserComputeResourcePreference_args> {
+      public getUserComputeResourcePreference() {
+        super("getUserComputeResourcePreference");
+      }
+
+      public getUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new getUserComputeResourcePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getUserComputeResourcePreference_result getResult(I iface, getUserComputeResourcePreference_args args) throws org.apache.thrift.TException {
+        getUserComputeResourcePreference_result result = new getUserComputeResourcePreference_result();
+        try {
+          result.success = iface.getUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getUserStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getUserStoragePreference_args> {
+      public getUserStoragePreference() {
+        super("getUserStoragePreference");
+      }
+
+      public getUserStoragePreference_args getEmptyArgsInstance() {
+        return new getUserStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getUserStoragePreference_result getResult(I iface, getUserStoragePreference_args args) throws org.apache.thrift.TException {
+        getUserStoragePreference_result result = new getUserStoragePreference_result();
+        try {
+          result.success = iface.getUserStoragePreference(args.userId, args.gatewayID, args.userStorageResourceId);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllUserResourceProfiles<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserResourceProfiles_args> {
+      public getAllUserResourceProfiles() {
+        super("getAllUserResourceProfiles");
+      }
+
+      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllUserResourceProfiles_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserResourceProfiles_result getResult(I iface, getAllUserResourceProfiles_args args) throws org.apache.thrift.TException {
+        getAllUserResourceProfiles_result result = new getAllUserResourceProfiles_result();
+        try {
+          result.success = iface.getAllUserResourceProfiles();
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class updateUserComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateUserComputeResourcePreference_args> {
+      public updateUserComputeResourcePreference() {
+        super("updateUserComputeResourcePreference");
+      }
+
+      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new updateUserComputeResourcePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateUserComputeResourcePreference_result getResult(I iface, updateUserComputeResourcePreference_args args) throws org.apache.thrift.TException {
+        updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
+        try {
+          result.success = iface.updateUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId, args.userComputeResourcePreference);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class updateUserStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, updateUserStoragePreference_args> {
+      public updateUserStoragePreference() {
+        super("updateUserStoragePreference");
+      }
+
+      public updateUserStoragePreference_args getEmptyArgsInstance() {
+        return new updateUserStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public updateUserStoragePreference_result getResult(I iface, updateUserStoragePreference_args args) throws org.apache.thrift.TException {
+        updateUserStoragePreference_result result = new updateUserStoragePreference_result();
+        try {
+          result.success = iface.updateUserStoragePreference(args.userId, args.gatewayID, args.userStorageId, args.userStoragePreference);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteUserComputeResourcePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteUserComputeResourcePreference_args> {
+      public deleteUserComputeResourcePreference() {
+        super("deleteUserComputeResourcePreference");
+      }
+
+      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteUserComputeResourcePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteUserComputeResourcePreference_result getResult(I iface, deleteUserComputeResourcePreference_args args) throws org.apache.thrift.TException {
+        deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+        try {
+          result.success = iface.deleteUserComputeResourcePreference(args.userId, args.gatewayID, args.userComputeResourceId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
+    public static class deleteUserStoragePreference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, deleteUserStoragePreference_args> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
+      }
+
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public deleteUserStoragePreference_result getResult(I iface, deleteUserStoragePreference_args args) throws org.apache.thrift.TException {
+        deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+        try {
+          result.success = iface.deleteUserStoragePreference(args.userId, args.gatewayID, args.userStorageId);
+          result.setSuccessIsSet(true);
+        } catch (org.apache.airavata.registry.api.exception.RegistryServiceException rse) {
+          result.rse = rse;
+        }
+        return result;
+      }
+    }
+
     public static class getAllWorkflows<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllWorkflows_args> {
       public getAllWorkflows() {
         super("getAllWorkflows");
@@ -13629,6 +15099,19 @@ public class RegistryService {
       processMap.put("updateGatewayStoragePreference", new updateGatewayStoragePreference());
       processMap.put("deleteGatewayComputeResourcePreference", new deleteGatewayComputeResourcePreference());
       processMap.put("deleteGatewayStoragePreference", new deleteGatewayStoragePreference());
+      processMap.put("registerUserResourceProfile", new registerUserResourceProfile());
+      processMap.put("getUserResourceProfile", new getUserResourceProfile());
+      processMap.put("updateUserResourceProfile", new updateUserResourceProfile());
+      processMap.put("deleteUserResourceProfile", new deleteUserResourceProfile());
+      processMap.put("addUserComputeResourcePreference", new addUserComputeResourcePreference());
+      processMap.put("addUserStoragePreference", new addUserStoragePreference());
+      processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
+      processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
+      processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
+      processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
+      processMap.put("deleteUserComputeResourcePreference", new deleteUserComputeResourcePreference());
+      processMap.put("deleteUserStoragePreference", new deleteUserStoragePreference());
       processMap.put("getAllWorkflows", new getAllWorkflows());
       processMap.put("getWorkflow", new getWorkflow());
       processM

<TRUNCATED>

[13/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 9e58d3f..57d4b46 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -2729,12 +2729,268 @@ class Iface:
     """
     pass
 
-  def getAllWorkflows(self, authzToken, gatewayId):
+  def registerUserResourceProfile(self, authzToken, userResourceProfile):
     """
-    Delete the Storage Resource Preference of a registered gateway profile.
+    Register User Resource Profile.
 
-    @param gatewayID
-      The identifier of the gateway profile to be deleted.
+    @param UserResourceProfile
+       User Resource Profile Object.
+       The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+         resource profile.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - userResourceProfile
+    """
+    pass
+
+  def getUserResourceProfile(self, authzToken, userId):
+    """
+    Fetch the given User Resource Profile.
+
+    @param userId
+      The identifier for the requested user resource profile.
+
+    @return UserResourceProfile
+       User Resource Profile Object.
+
+
+    Parameters:
+     - authzToken
+     - userId
+    """
+    pass
+
+  def updateUserResourceProfile(self, authzToken, userId, userResourceProfile):
+    """
+    Update a User Resource Profile.
+
+    @param userId
+      The identifier for the requested user resource to be updated.
+
+    @param UserResourceProfile
+       User Resource Profile Object.
+
+    @return status
+      Returns a success/failure of the update.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - userResourceProfile
+    """
+    pass
+
+  def deleteUserResourceProfile(self, authzToken, userId):
+    """
+    Delete the given User Resource Profile.
+
+    @param userId
+      The identifier for the requested user resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - userId
+    """
+    pass
+
+  def addUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
+    """
+    Add a Compute Resource Preference to a registered User profile.
+
+    @param userId
+      The identifier for the User resource profile to be added.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be added to the resource profile.
+
+    @return status
+      Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+       Instead an update should be used.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - computeResourceId
+     - computeResourcePreference
+    """
+    pass
+
+  def addUserStoragePreference(self, authzToken, userId, storageResourceId, storagePreference):
+    """
+    Add a Storage Resource Preference to a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to be added.
+
+    @param storageResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be added to the resource profile.
+
+    @return status
+      Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+       Instead an update should be used.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - storageResourceId
+     - storagePreference
+    """
+    pass
+
+  def getUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
+    """
+
+    Fetch a Compute Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier for the user profile to be requested
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return computeResourcePreference
+      Returns the ComputeResourcePreference object.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - computeResourceId
+    """
+    pass
+
+  def getUserStoragePreference(self, authzToken, userId, storageResourceId):
+    """
+
+    Fetch a Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to request to fetch the particular storage resource preference.
+
+    @param storageResourceId
+      Identifier of the Stprage Preference required to be fetched.
+
+    @return StoragePreference
+      Returns the StoragePreference object.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - storageResourceId
+    """
+    pass
+
+  def getAllUserResourceProfiles(self, authzToken):
+    """
+
+    Fetch all user resources Profiles registered
+
+    @return UserResourceProfile
+      Returns all the UserResourcePrifle list object.
+
+
+
+    Parameters:
+     - authzToken
+    """
+    pass
+
+  def updateUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
+    """
+    Update a Compute Resource Preference to a registered user resource profile.
+
+    @param userId
+      The identifier for the user profile to be updated.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - computeResourceId
+     - computeResourcePreference
+    """
+    pass
+
+  def updateUserStoragePreference(self, authzToken, userId, storageId, storagePreference):
+    """
+    Update a Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to be updated.
+
+    @param storageId
+      The Storage resource identifier of the one that you want to update
+
+    @param storagePreference
+      The storagePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - storageId
+     - storagePreference
+    """
+    pass
+
+  def deleteUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
+    """
+    Delete the Compute Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier for the user resource profile to be deleted.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
+    Parameters:
+     - authzToken
+     - userId
+     - computeResourceId
+    """
+    pass
+
+  def deleteUserStoragePreference(self, authzToken, userId, storageId):
+    """
+    Delete the Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user profile to be deleted.
 
     @param storageId
       ID of the storage preference you want to delete.
@@ -2745,6 +3001,15 @@ class Iface:
 
     Parameters:
      - authzToken
+     - userId
+     - storageId
+    """
+    pass
+
+  def getAllWorkflows(self, authzToken, gatewayId):
+    """
+    Parameters:
+     - authzToken
      - gatewayId
     """
     pass
@@ -9985,37 +10250,36 @@ class Client(Iface):
       raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result")
 
-  def getAllWorkflows(self, authzToken, gatewayId):
+  def registerUserResourceProfile(self, authzToken, userResourceProfile):
     """
-    Delete the Storage Resource Preference of a registered gateway profile.
-
-    @param gatewayID
-      The identifier of the gateway profile to be deleted.
+    Register User Resource Profile.
 
-    @param storageId
-      ID of the storage preference you want to delete.
+    @param UserResourceProfile
+       User Resource Profile Object.
+       The userId should be obtained from Airavata user profile data model and passed to register a corresponding
+         resource profile.
 
     @return status
-      Returns a success/failure of the deletion.
+      Returns a success/failure of the update.
 
 
     Parameters:
      - authzToken
-     - gatewayId
+     - userResourceProfile
     """
-    self.send_getAllWorkflows(authzToken, gatewayId)
-    return self.recv_getAllWorkflows()
+    self.send_registerUserResourceProfile(authzToken, userResourceProfile)
+    return self.recv_registerUserResourceProfile()
 
-  def send_getAllWorkflows(self, authzToken, gatewayId):
-    self._oprot.writeMessageBegin('getAllWorkflows', TMessageType.CALL, self._seqid)
-    args = getAllWorkflows_args()
+  def send_registerUserResourceProfile(self, authzToken, userResourceProfile):
+    self._oprot.writeMessageBegin('registerUserResourceProfile', TMessageType.CALL, self._seqid)
+    args = registerUserResourceProfile_args()
     args.authzToken = authzToken
-    args.gatewayId = gatewayId
+    args.userResourceProfile = userResourceProfile
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getAllWorkflows(self):
+  def recv_registerUserResourceProfile(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10023,7 +10287,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getAllWorkflows_result()
+    result = registerUserResourceProfile_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10036,31 +10300,36 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllWorkflows failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerUserResourceProfile failed: unknown result")
 
-  def getWorkflow(self, authzToken, workflowTemplateId):
+  def getUserResourceProfile(self, authzToken, userId):
     """
+    Fetch the given User Resource Profile.
 
-    API Methods Related for Work-Flow Submission Features.
+    @param userId
+      The identifier for the requested user resource profile.
+
+    @return UserResourceProfile
+       User Resource Profile Object.
 
 
     Parameters:
      - authzToken
-     - workflowTemplateId
+     - userId
     """
-    self.send_getWorkflow(authzToken, workflowTemplateId)
-    return self.recv_getWorkflow()
+    self.send_getUserResourceProfile(authzToken, userId)
+    return self.recv_getUserResourceProfile()
 
-  def send_getWorkflow(self, authzToken, workflowTemplateId):
-    self._oprot.writeMessageBegin('getWorkflow', TMessageType.CALL, self._seqid)
-    args = getWorkflow_args()
+  def send_getUserResourceProfile(self, authzToken, userId):
+    self._oprot.writeMessageBegin('getUserResourceProfile', TMessageType.CALL, self._seqid)
+    args = getUserResourceProfile_args()
     args.authzToken = authzToken
-    args.workflowTemplateId = workflowTemplateId
+    args.userId = userId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getWorkflow(self):
+  def recv_getUserResourceProfile(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10068,7 +10337,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getWorkflow_result()
+    result = getUserResourceProfile_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10081,27 +10350,41 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getWorkflow failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserResourceProfile failed: unknown result")
 
-  def deleteWorkflow(self, authzToken, workflowTemplateId):
+  def updateUserResourceProfile(self, authzToken, userId, userResourceProfile):
     """
+    Update a User Resource Profile.
+
+    @param userId
+      The identifier for the requested user resource to be updated.
+
+    @param UserResourceProfile
+       User Resource Profile Object.
+
+    @return status
+      Returns a success/failure of the update.
+
+
     Parameters:
      - authzToken
-     - workflowTemplateId
+     - userId
+     - userResourceProfile
     """
-    self.send_deleteWorkflow(authzToken, workflowTemplateId)
-    self.recv_deleteWorkflow()
+    self.send_updateUserResourceProfile(authzToken, userId, userResourceProfile)
+    return self.recv_updateUserResourceProfile()
 
-  def send_deleteWorkflow(self, authzToken, workflowTemplateId):
-    self._oprot.writeMessageBegin('deleteWorkflow', TMessageType.CALL, self._seqid)
-    args = deleteWorkflow_args()
+  def send_updateUserResourceProfile(self, authzToken, userId, userResourceProfile):
+    self._oprot.writeMessageBegin('updateUserResourceProfile', TMessageType.CALL, self._seqid)
+    args = updateUserResourceProfile_args()
     args.authzToken = authzToken
-    args.workflowTemplateId = workflowTemplateId
+    args.userId = userId
+    args.userResourceProfile = userResourceProfile
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_deleteWorkflow(self):
+  def recv_updateUserResourceProfile(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10109,9 +10392,11 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = deleteWorkflow_result()
+    result = updateUserResourceProfile_result()
     result.read(iprot)
     iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
     if result.ire is not None:
       raise result.ire
     if result.ace is not None:
@@ -10120,29 +10405,36 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    return
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateUserResourceProfile failed: unknown result")
 
-  def registerWorkflow(self, authzToken, gatewayId, workflow):
+  def deleteUserResourceProfile(self, authzToken, userId):
     """
+    Delete the given User Resource Profile.
+
+    @param userId
+      The identifier for the requested user resource to be deleted.
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
     Parameters:
      - authzToken
-     - gatewayId
-     - workflow
+     - userId
     """
-    self.send_registerWorkflow(authzToken, gatewayId, workflow)
-    return self.recv_registerWorkflow()
+    self.send_deleteUserResourceProfile(authzToken, userId)
+    return self.recv_deleteUserResourceProfile()
 
-  def send_registerWorkflow(self, authzToken, gatewayId, workflow):
-    self._oprot.writeMessageBegin('registerWorkflow', TMessageType.CALL, self._seqid)
-    args = registerWorkflow_args()
+  def send_deleteUserResourceProfile(self, authzToken, userId):
+    self._oprot.writeMessageBegin('deleteUserResourceProfile', TMessageType.CALL, self._seqid)
+    args = deleteUserResourceProfile_args()
     args.authzToken = authzToken
-    args.gatewayId = gatewayId
-    args.workflow = workflow
+    args.userId = userId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_registerWorkflow(self):
+  def recv_deleteUserResourceProfile(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10150,7 +10442,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = registerWorkflow_result()
+    result = deleteUserResourceProfile_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10163,29 +10455,47 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerWorkflow failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteUserResourceProfile failed: unknown result")
 
-  def updateWorkflow(self, authzToken, workflowTemplateId, workflow):
+  def addUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
     """
+    Add a Compute Resource Preference to a registered User profile.
+
+    @param userId
+      The identifier for the User resource profile to be added.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be added to the resource profile.
+
+    @return status
+      Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+       Instead an update should be used.
+
+
     Parameters:
      - authzToken
-     - workflowTemplateId
-     - workflow
+     - userId
+     - computeResourceId
+     - computeResourcePreference
     """
-    self.send_updateWorkflow(authzToken, workflowTemplateId, workflow)
-    self.recv_updateWorkflow()
+    self.send_addUserComputeResourcePreference(authzToken, userId, computeResourceId, computeResourcePreference)
+    return self.recv_addUserComputeResourcePreference()
 
-  def send_updateWorkflow(self, authzToken, workflowTemplateId, workflow):
-    self._oprot.writeMessageBegin('updateWorkflow', TMessageType.CALL, self._seqid)
-    args = updateWorkflow_args()
+  def send_addUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
+    self._oprot.writeMessageBegin('addUserComputeResourcePreference', TMessageType.CALL, self._seqid)
+    args = addUserComputeResourcePreference_args()
     args.authzToken = authzToken
-    args.workflowTemplateId = workflowTemplateId
-    args.workflow = workflow
+    args.userId = userId
+    args.computeResourceId = computeResourceId
+    args.computeResourcePreference = computeResourcePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_updateWorkflow(self):
+  def recv_addUserComputeResourcePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10193,9 +10503,11 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = updateWorkflow_result()
+    result = addUserComputeResourcePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
     if result.ire is not None:
       raise result.ire
     if result.ace is not None:
@@ -10204,27 +10516,47 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    return
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "addUserComputeResourcePreference failed: unknown result")
 
-  def getWorkflowTemplateId(self, authzToken, workflowName):
+  def addUserStoragePreference(self, authzToken, userId, storageResourceId, storagePreference):
     """
+    Add a Storage Resource Preference to a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to be added.
+
+    @param storageResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be added to the resource profile.
+
+    @return status
+      Returns a success/failure of the addition. If a profile already exists, this operation will fail.
+       Instead an update should be used.
+
+
     Parameters:
      - authzToken
-     - workflowName
+     - userId
+     - storageResourceId
+     - storagePreference
     """
-    self.send_getWorkflowTemplateId(authzToken, workflowName)
-    return self.recv_getWorkflowTemplateId()
+    self.send_addUserStoragePreference(authzToken, userId, storageResourceId, storagePreference)
+    return self.recv_addUserStoragePreference()
 
-  def send_getWorkflowTemplateId(self, authzToken, workflowName):
-    self._oprot.writeMessageBegin('getWorkflowTemplateId', TMessageType.CALL, self._seqid)
-    args = getWorkflowTemplateId_args()
+  def send_addUserStoragePreference(self, authzToken, userId, storageResourceId, storagePreference):
+    self._oprot.writeMessageBegin('addUserStoragePreference', TMessageType.CALL, self._seqid)
+    args = addUserStoragePreference_args()
     args.authzToken = authzToken
-    args.workflowName = workflowName
+    args.userId = userId
+    args.storageResourceId = storageResourceId
+    args.storagePreference = storagePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getWorkflowTemplateId(self):
+  def recv_addUserStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10232,7 +10564,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getWorkflowTemplateId_result()
+    result = addUserStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10245,27 +10577,42 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getWorkflowTemplateId failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "addUserStoragePreference failed: unknown result")
 
-  def isWorkflowExistWithName(self, authzToken, workflowName):
+  def getUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
     """
+
+    Fetch a Compute Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier for the user profile to be requested
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return computeResourcePreference
+      Returns the ComputeResourcePreference object.
+
+
     Parameters:
      - authzToken
-     - workflowName
+     - userId
+     - computeResourceId
     """
-    self.send_isWorkflowExistWithName(authzToken, workflowName)
-    return self.recv_isWorkflowExistWithName()
+    self.send_getUserComputeResourcePreference(authzToken, userId, computeResourceId)
+    return self.recv_getUserComputeResourcePreference()
 
-  def send_isWorkflowExistWithName(self, authzToken, workflowName):
-    self._oprot.writeMessageBegin('isWorkflowExistWithName', TMessageType.CALL, self._seqid)
-    args = isWorkflowExistWithName_args()
+  def send_getUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
+    self._oprot.writeMessageBegin('getUserComputeResourcePreference', TMessageType.CALL, self._seqid)
+    args = getUserComputeResourcePreference_args()
     args.authzToken = authzToken
-    args.workflowName = workflowName
+    args.userId = userId
+    args.computeResourceId = computeResourceId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_isWorkflowExistWithName(self):
+  def recv_getUserComputeResourcePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10273,7 +10620,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = isWorkflowExistWithName_result()
+    result = getUserComputeResourcePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10286,30 +10633,42 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "isWorkflowExistWithName failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserComputeResourcePreference failed: unknown result")
 
-  def registerDataProduct(self, authzToken, dataProductModel):
+  def getUserStoragePreference(self, authzToken, userId, storageResourceId):
     """
-    API Methods related to replica catalog
+
+    Fetch a Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to request to fetch the particular storage resource preference.
+
+    @param storageResourceId
+      Identifier of the Stprage Preference required to be fetched.
+
+    @return StoragePreference
+      Returns the StoragePreference object.
 
 
     Parameters:
      - authzToken
-     - dataProductModel
+     - userId
+     - storageResourceId
     """
-    self.send_registerDataProduct(authzToken, dataProductModel)
-    return self.recv_registerDataProduct()
+    self.send_getUserStoragePreference(authzToken, userId, storageResourceId)
+    return self.recv_getUserStoragePreference()
 
-  def send_registerDataProduct(self, authzToken, dataProductModel):
-    self._oprot.writeMessageBegin('registerDataProduct', TMessageType.CALL, self._seqid)
-    args = registerDataProduct_args()
+  def send_getUserStoragePreference(self, authzToken, userId, storageResourceId):
+    self._oprot.writeMessageBegin('getUserStoragePreference', TMessageType.CALL, self._seqid)
+    args = getUserStoragePreference_args()
     args.authzToken = authzToken
-    args.dataProductModel = dataProductModel
+    args.userId = userId
+    args.storageResourceId = storageResourceId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_registerDataProduct(self):
+  def recv_getUserStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10317,7 +10676,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = registerDataProduct_result()
+    result = getUserStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10330,27 +10689,33 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerDataProduct failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getUserStoragePreference failed: unknown result")
 
-  def getDataProduct(self, authzToken, dataProductUri):
+  def getAllUserResourceProfiles(self, authzToken):
     """
+
+    Fetch all user resources Profiles registered
+
+    @return UserResourceProfile
+      Returns all the UserResourcePrifle list object.
+
+
+
     Parameters:
      - authzToken
-     - dataProductUri
     """
-    self.send_getDataProduct(authzToken, dataProductUri)
-    return self.recv_getDataProduct()
+    self.send_getAllUserResourceProfiles(authzToken)
+    return self.recv_getAllUserResourceProfiles()
 
-  def send_getDataProduct(self, authzToken, dataProductUri):
-    self._oprot.writeMessageBegin('getDataProduct', TMessageType.CALL, self._seqid)
-    args = getDataProduct_args()
+  def send_getAllUserResourceProfiles(self, authzToken):
+    self._oprot.writeMessageBegin('getAllUserResourceProfiles', TMessageType.CALL, self._seqid)
+    args = getAllUserResourceProfiles_args()
     args.authzToken = authzToken
-    args.dataProductUri = dataProductUri
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getDataProduct(self):
+  def recv_getAllUserResourceProfiles(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10358,7 +10723,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getDataProduct_result()
+    result = getAllUserResourceProfiles_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10371,27 +10736,46 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getDataProduct failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllUserResourceProfiles failed: unknown result")
 
-  def registerReplicaLocation(self, authzToken, replicaLocationModel):
+  def updateUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
     """
+    Update a Compute Resource Preference to a registered user resource profile.
+
+    @param userId
+      The identifier for the user profile to be updated.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @param computeResourcePreference
+      The ComputeResourcePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
     Parameters:
      - authzToken
-     - replicaLocationModel
+     - userId
+     - computeResourceId
+     - computeResourcePreference
     """
-    self.send_registerReplicaLocation(authzToken, replicaLocationModel)
-    return self.recv_registerReplicaLocation()
+    self.send_updateUserComputeResourcePreference(authzToken, userId, computeResourceId, computeResourcePreference)
+    return self.recv_updateUserComputeResourcePreference()
 
-  def send_registerReplicaLocation(self, authzToken, replicaLocationModel):
-    self._oprot.writeMessageBegin('registerReplicaLocation', TMessageType.CALL, self._seqid)
-    args = registerReplicaLocation_args()
+  def send_updateUserComputeResourcePreference(self, authzToken, userId, computeResourceId, computeResourcePreference):
+    self._oprot.writeMessageBegin('updateUserComputeResourcePreference', TMessageType.CALL, self._seqid)
+    args = updateUserComputeResourcePreference_args()
     args.authzToken = authzToken
-    args.replicaLocationModel = replicaLocationModel
+    args.userId = userId
+    args.computeResourceId = computeResourceId
+    args.computeResourcePreference = computeResourcePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_registerReplicaLocation(self):
+  def recv_updateUserComputeResourcePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10399,7 +10783,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = registerReplicaLocation_result()
+    result = updateUserComputeResourcePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10412,27 +10796,46 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerReplicaLocation failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateUserComputeResourcePreference failed: unknown result")
 
-  def getParentDataProduct(self, authzToken, productUri):
+  def updateUserStoragePreference(self, authzToken, userId, storageId, storagePreference):
     """
+    Update a Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user resource profile to be updated.
+
+    @param storageId
+      The Storage resource identifier of the one that you want to update
+
+    @param storagePreference
+      The storagePreference object to be updated to the resource profile.
+
+    @return status
+      Returns a success/failure of the updation.
+
+
     Parameters:
      - authzToken
-     - productUri
+     - userId
+     - storageId
+     - storagePreference
     """
-    self.send_getParentDataProduct(authzToken, productUri)
-    return self.recv_getParentDataProduct()
+    self.send_updateUserStoragePreference(authzToken, userId, storageId, storagePreference)
+    return self.recv_updateUserStoragePreference()
 
-  def send_getParentDataProduct(self, authzToken, productUri):
-    self._oprot.writeMessageBegin('getParentDataProduct', TMessageType.CALL, self._seqid)
-    args = getParentDataProduct_args()
+  def send_updateUserStoragePreference(self, authzToken, userId, storageId, storagePreference):
+    self._oprot.writeMessageBegin('updateUserStoragePreference', TMessageType.CALL, self._seqid)
+    args = updateUserStoragePreference_args()
     args.authzToken = authzToken
-    args.productUri = productUri
+    args.userId = userId
+    args.storageId = storageId
+    args.storagePreference = storagePreference
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getParentDataProduct(self):
+  def recv_updateUserStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10440,7 +10843,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getParentDataProduct_result()
+    result = updateUserStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10453,27 +10856,41 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getParentDataProduct failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateUserStoragePreference failed: unknown result")
 
-  def getChildDataProducts(self, authzToken, productUri):
+  def deleteUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
     """
+    Delete the Compute Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier for the user resource profile to be deleted.
+
+    @param computeResourceId
+      Preferences related to a particular compute resource
+
+    @return status
+      Returns a success/failure of the deletion.
+
+
     Parameters:
      - authzToken
-     - productUri
+     - userId
+     - computeResourceId
     """
-    self.send_getChildDataProducts(authzToken, productUri)
-    return self.recv_getChildDataProducts()
+    self.send_deleteUserComputeResourcePreference(authzToken, userId, computeResourceId)
+    return self.recv_deleteUserComputeResourcePreference()
 
-  def send_getChildDataProducts(self, authzToken, productUri):
-    self._oprot.writeMessageBegin('getChildDataProducts', TMessageType.CALL, self._seqid)
-    args = getChildDataProducts_args()
+  def send_deleteUserComputeResourcePreference(self, authzToken, userId, computeResourceId):
+    self._oprot.writeMessageBegin('deleteUserComputeResourcePreference', TMessageType.CALL, self._seqid)
+    args = deleteUserComputeResourcePreference_args()
     args.authzToken = authzToken
-    args.productUri = productUri
+    args.userId = userId
+    args.computeResourceId = computeResourceId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getChildDataProducts(self):
+  def recv_deleteUserComputeResourcePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10481,7 +10898,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getChildDataProducts_result()
+    result = deleteUserComputeResourcePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10494,34 +10911,41 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getChildDataProducts failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteUserComputeResourcePreference failed: unknown result")
 
-  def shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+  def deleteUserStoragePreference(self, authzToken, userId, storageId):
     """
-    Group Manager and Data Sharing Related API methods
+    Delete the Storage Resource Preference of a registered user resource profile.
+
+    @param userId
+      The identifier of the user profile to be deleted.
+
+    @param storageId
+      ID of the storage preference you want to delete.
+
+    @return status
+      Returns a success/failure of the deletion.
 
 
     Parameters:
      - authzToken
-     - resourceId
-     - resourceType
-     - userPermissionList
+     - userId
+     - storageId
     """
-    self.send_shareResourceWithUsers(authzToken, resourceId, resourceType, userPermissionList)
-    return self.recv_shareResourceWithUsers()
+    self.send_deleteUserStoragePreference(authzToken, userId, storageId)
+    return self.recv_deleteUserStoragePreference()
 
-  def send_shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
-    self._oprot.writeMessageBegin('shareResourceWithUsers', TMessageType.CALL, self._seqid)
-    args = shareResourceWithUsers_args()
+  def send_deleteUserStoragePreference(self, authzToken, userId, storageId):
+    self._oprot.writeMessageBegin('deleteUserStoragePreference', TMessageType.CALL, self._seqid)
+    args = deleteUserStoragePreference_args()
     args.authzToken = authzToken
-    args.resourceId = resourceId
-    args.resourceType = resourceType
-    args.userPermissionList = userPermissionList
+    args.userId = userId
+    args.storageId = storageId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_shareResourceWithUsers(self):
+  def recv_deleteUserStoragePreference(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10529,7 +10953,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = shareResourceWithUsers_result()
+    result = deleteUserStoragePreference_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10542,31 +10966,27 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "shareResourceWithUsers failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteUserStoragePreference failed: unknown result")
 
-  def revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+  def getAllWorkflows(self, authzToken, gatewayId):
     """
     Parameters:
      - authzToken
-     - resourceId
-     - resourceType
-     - userPermissionList
+     - gatewayId
     """
-    self.send_revokeSharingOfResourceFromUsers(authzToken, resourceId, resourceType, userPermissionList)
-    return self.recv_revokeSharingOfResourceFromUsers()
+    self.send_getAllWorkflows(authzToken, gatewayId)
+    return self.recv_getAllWorkflows()
 
-  def send_revokeSharingOfResourceFromUsers(self, authzToken, resourceId, resourceType, userPermissionList):
-    self._oprot.writeMessageBegin('revokeSharingOfResourceFromUsers', TMessageType.CALL, self._seqid)
-    args = revokeSharingOfResourceFromUsers_args()
-    args.authzToken = authzToken
-    args.resourceId = resourceId
-    args.resourceType = resourceType
-    args.userPermissionList = userPermissionList
+  def send_getAllWorkflows(self, authzToken, gatewayId):
+    self._oprot.writeMessageBegin('getAllWorkflows', TMessageType.CALL, self._seqid)
+    args = getAllWorkflows_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_revokeSharingOfResourceFromUsers(self):
+  def recv_getAllWorkflows(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10574,7 +10994,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = revokeSharingOfResourceFromUsers_result()
+    result = getAllWorkflows_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10587,31 +11007,31 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "revokeSharingOfResourceFromUsers failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllWorkflows failed: unknown result")
 
-  def getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
+  def getWorkflow(self, authzToken, workflowTemplateId):
     """
+
+    API Methods Related for Work-Flow Submission Features.
+
+
     Parameters:
      - authzToken
-     - resourceId
-     - resourceType
-     - permissionType
+     - workflowTemplateId
     """
-    self.send_getAllAccessibleUsers(authzToken, resourceId, resourceType, permissionType)
-    return self.recv_getAllAccessibleUsers()
+    self.send_getWorkflow(authzToken, workflowTemplateId)
+    return self.recv_getWorkflow()
 
-  def send_getAllAccessibleUsers(self, authzToken, resourceId, resourceType, permissionType):
-    self._oprot.writeMessageBegin('getAllAccessibleUsers', TMessageType.CALL, self._seqid)
-    args = getAllAccessibleUsers_args()
+  def send_getWorkflow(self, authzToken, workflowTemplateId):
+    self._oprot.writeMessageBegin('getWorkflow', TMessageType.CALL, self._seqid)
+    args = getWorkflow_args()
     args.authzToken = authzToken
-    args.resourceId = resourceId
-    args.resourceType = resourceType
-    args.permissionType = permissionType
+    args.workflowTemplateId = workflowTemplateId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getAllAccessibleUsers(self):
+  def recv_getWorkflow(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10619,7 +11039,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getAllAccessibleUsers_result()
+    result = getWorkflow_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10632,27 +11052,27 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllAccessibleUsers failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getWorkflow failed: unknown result")
 
-  def createGroup(self, authzToken, groupModel):
+  def deleteWorkflow(self, authzToken, workflowTemplateId):
     """
     Parameters:
      - authzToken
-     - groupModel
+     - workflowTemplateId
     """
-    self.send_createGroup(authzToken, groupModel)
-    return self.recv_createGroup()
+    self.send_deleteWorkflow(authzToken, workflowTemplateId)
+    self.recv_deleteWorkflow()
 
-  def send_createGroup(self, authzToken, groupModel):
-    self._oprot.writeMessageBegin('createGroup', TMessageType.CALL, self._seqid)
-    args = createGroup_args()
+  def send_deleteWorkflow(self, authzToken, workflowTemplateId):
+    self._oprot.writeMessageBegin('deleteWorkflow', TMessageType.CALL, self._seqid)
+    args = deleteWorkflow_args()
     args.authzToken = authzToken
-    args.groupModel = groupModel
+    args.workflowTemplateId = workflowTemplateId
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_createGroup(self):
+  def recv_deleteWorkflow(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10660,7 +11080,48 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = createGroup_result()
+    result = deleteWorkflow_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def registerWorkflow(self, authzToken, gatewayId, workflow):
+    """
+    Parameters:
+     - authzToken
+     - gatewayId
+     - workflow
+    """
+    self.send_registerWorkflow(authzToken, gatewayId, workflow)
+    return self.recv_registerWorkflow()
+
+  def send_registerWorkflow(self, authzToken, gatewayId, workflow):
+    self._oprot.writeMessageBegin('registerWorkflow', TMessageType.CALL, self._seqid)
+    args = registerWorkflow_args()
+    args.authzToken = authzToken
+    args.gatewayId = gatewayId
+    args.workflow = workflow
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_registerWorkflow(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = registerWorkflow_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10673,27 +11134,29 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "createGroup failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerWorkflow failed: unknown result")
 
-  def updateGroup(self, authzToken, groupModel):
+  def updateWorkflow(self, authzToken, workflowTemplateId, workflow):
     """
     Parameters:
      - authzToken
-     - groupModel
+     - workflowTemplateId
+     - workflow
     """
-    self.send_updateGroup(authzToken, groupModel)
-    return self.recv_updateGroup()
+    self.send_updateWorkflow(authzToken, workflowTemplateId, workflow)
+    self.recv_updateWorkflow()
 
-  def send_updateGroup(self, authzToken, groupModel):
-    self._oprot.writeMessageBegin('updateGroup', TMessageType.CALL, self._seqid)
-    args = updateGroup_args()
+  def send_updateWorkflow(self, authzToken, workflowTemplateId, workflow):
+    self._oprot.writeMessageBegin('updateWorkflow', TMessageType.CALL, self._seqid)
+    args = updateWorkflow_args()
     args.authzToken = authzToken
-    args.groupModel = groupModel
+    args.workflowTemplateId = workflowTemplateId
+    args.workflow = workflow
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_updateGroup(self):
+  def recv_updateWorkflow(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10701,7 +11164,46 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = updateGroup_result()
+    result = updateWorkflow_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    return
+
+  def getWorkflowTemplateId(self, authzToken, workflowName):
+    """
+    Parameters:
+     - authzToken
+     - workflowName
+    """
+    self.send_getWorkflowTemplateId(authzToken, workflowName)
+    return self.recv_getWorkflowTemplateId()
+
+  def send_getWorkflowTemplateId(self, authzToken, workflowName):
+    self._oprot.writeMessageBegin('getWorkflowTemplateId', TMessageType.CALL, self._seqid)
+    args = getWorkflowTemplateId_args()
+    args.authzToken = authzToken
+    args.workflowName = workflowName
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getWorkflowTemplateId(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getWorkflowTemplateId_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10714,31 +11216,27 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "updateGroup failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getWorkflowTemplateId failed: unknown result")
 
-  def deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
+  def isWorkflowExistWithName(self, authzToken, workflowName):
     """
     Parameters:
      - authzToken
-     - groupId
-     - ownerId
-     - gatewayId
+     - workflowName
     """
-    self.send_deleteGroup(authzToken, groupId, ownerId, gatewayId)
-    return self.recv_deleteGroup()
+    self.send_isWorkflowExistWithName(authzToken, workflowName)
+    return self.recv_isWorkflowExistWithName()
 
-  def send_deleteGroup(self, authzToken, groupId, ownerId, gatewayId):
-    self._oprot.writeMessageBegin('deleteGroup', TMessageType.CALL, self._seqid)
-    args = deleteGroup_args()
+  def send_isWorkflowExistWithName(self, authzToken, workflowName):
+    self._oprot.writeMessageBegin('isWorkflowExistWithName', TMessageType.CALL, self._seqid)
+    args = isWorkflowExistWithName_args()
     args.authzToken = authzToken
-    args.groupId = groupId
-    args.ownerId = ownerId
-    args.gatewayId = gatewayId
+    args.workflowName = workflowName
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_deleteGroup(self):
+  def recv_isWorkflowExistWithName(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10746,7 +11244,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = deleteGroup_result()
+    result = isWorkflowExistWithName_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10759,27 +11257,30 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "deleteGroup failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "isWorkflowExistWithName failed: unknown result")
 
-  def getGroup(self, authzToken, groupId):
+  def registerDataProduct(self, authzToken, dataProductModel):
     """
+    API Methods related to replica catalog
+
+
     Parameters:
      - authzToken
-     - groupId
+     - dataProductModel
     """
-    self.send_getGroup(authzToken, groupId)
-    return self.recv_getGroup()
+    self.send_registerDataProduct(authzToken, dataProductModel)
+    return self.recv_registerDataProduct()
 
-  def send_getGroup(self, authzToken, groupId):
-    self._oprot.writeMessageBegin('getGroup', TMessageType.CALL, self._seqid)
-    args = getGroup_args()
+  def send_registerDataProduct(self, authzToken, dataProductModel):
+    self._oprot.writeMessageBegin('registerDataProduct', TMessageType.CALL, self._seqid)
+    args = registerDataProduct_args()
     args.authzToken = authzToken
-    args.groupId = groupId
+    args.dataProductModel = dataProductModel
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getGroup(self):
+  def recv_registerDataProduct(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10787,7 +11288,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getGroup_result()
+    result = registerDataProduct_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10800,29 +11301,27 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getGroup failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerDataProduct failed: unknown result")
 
-  def getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
+  def getDataProduct(self, authzToken, dataProductUri):
     """
     Parameters:
      - authzToken
-     - userName
-     - gatewayId
+     - dataProductUri
     """
-    self.send_getAllGroupsUserBelongs(authzToken, userName, gatewayId)
-    return self.recv_getAllGroupsUserBelongs()
+    self.send_getDataProduct(authzToken, dataProductUri)
+    return self.recv_getDataProduct()
 
-  def send_getAllGroupsUserBelongs(self, authzToken, userName, gatewayId):
-    self._oprot.writeMessageBegin('getAllGroupsUserBelongs', TMessageType.CALL, self._seqid)
-    args = getAllGroupsUserBelongs_args()
+  def send_getDataProduct(self, authzToken, dataProductUri):
+    self._oprot.writeMessageBegin('getDataProduct', TMessageType.CALL, self._seqid)
+    args = getDataProduct_args()
     args.authzToken = authzToken
-    args.userName = userName
-    args.gatewayId = gatewayId
+    args.dataProductUri = dataProductUri
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
 
-  def recv_getAllGroupsUserBelongs(self):
+  def recv_getDataProduct(self):
     iprot = self._iprot
     (fname, mtype, rseqid) = iprot.readMessageBegin()
     if mtype == TMessageType.EXCEPTION:
@@ -10830,7 +11329,7 @@ class Client(Iface):
       x.read(iprot)
       iprot.readMessageEnd()
       raise x
-    result = getAllGroupsUserBelongs_result()
+    result = getDataProduct_result()
     result.read(iprot)
     iprot.readMessageEnd()
     if result.success is not None:
@@ -10843,619 +11342,670 @@ class Client(Iface):
       raise result.ase
     if result.ae is not None:
       raise result.ae
-    raise TApplicationException(TApplicationException.MISSING_RESULT, "getAllGroupsUserBelongs failed: unknown result")
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getDataProduct failed: unknown result")
 
+  def registerReplicaLocation(self, authzToken, replicaLocationModel):
+    """
+    Parameters:
+     - authzToken
+     - replicaLocationModel
+    """
+    self.send_registerReplicaLocation(authzToken, replicaLocationModel)
+    return self.recv_registerReplicaLocation()
 
-class Processor(Iface, TProcessor):
-  def __init__(self, handler):
-    self._handler = handler
-    self._processMap = {}
-    self._processMap["getAPIVersion"] = Processor.process_getAPIVersion
-    self._processMap["isUserExists"] = Processor.process_isUserExists
-    self._processMap["addGateway"] = Processor.process_addGateway
-    self._processMap["getAllUsersInGateway"] = Processor.process_getAllUsersInGateway
-    self._processMap["updateGateway"] = Processor.process_updateGateway
-    self._processMap["getGateway"] = Processor.process_getGateway
-    self._processMap["deleteGateway"] = Processor.process_deleteGateway
-    self._processMap["getAllGateways"] = Processor.process_getAllGateways
-    self._processMap["isGatewayExist"] = Processor.process_isGatewayExist
-    self._processMap["createNotification"] = Processor.process_createNotification
-    self._processMap["updateNotification"] = Processor.process_updateNotification
-    self._processMap["deleteNotification"] = Processor.process_deleteNotification
-    self._processMap["getNotification"] = Processor.process_getNotification
-    self._processMap["getAllNotifications"] = Processor.process_getAllNotifications
-    self._processMap["generateAndRegisterSSHKeys"] = Processor.process_generateAndRegisterSSHKeys
-    self._processMap["registerPwdCredential"] = Processor.process_registerPwdCredential
-    self._processMap["getSSHPubKey"] = Processor.process_getSSHPubKey
-    self._processMap["getAllGatewaySSHPubKeys"] = Processor.process_getAllGatewaySSHPubKeys
-    self._processMap["getAllGatewayPWDCredentials"] = Processor.process_getAllGatewayPWDCredentials
-    self._processMap["deleteSSHPubKey"] = Processor.process_deleteSSHPubKey
-    self._processMap["deletePWDCredential"] = Processor.process_deletePWDCredential
-    self._processMap["createProject"] = Processor.process_createProject
-    self._processMap["updateProject"] = Processor.process_updateProject
-    self._processMap["getProject"] = Processor.process_getProject
-    self._processMap["deleteProject"] = Processor.process_deleteProject
-    self._processMap["getUserProjects"] = Processor.process_getUserProjects
-    self._processMap["searchProjects"] = Processor.process_searchProjects
-    self._processMap["searchExperiments"] = Processor.process_searchExperiments
-    self._processMap["getExperimentStatistics"] = Processor.process_getExperimentStatistics
-    self._processMap["getExperimentsInProject"] = Processor.process_getExperimentsInProject
-    self._processMap["getUserExperiments"] = Processor.process_getUserExperiments
-    self._processMap["createExperiment"] = Processor.process_createExperiment
-    self._processMap["deleteExperiment"] = Processor.process_deleteExperiment
-    self._processMap["getExperiment"] = Processor.process_getExperiment
-    self._processMap["getDetailedExperimentTree"] = Processor.process_getDetailedExperimentTree
-    self._processMap["updateExperiment"] = Processor.process_updateExperiment
-    self._processMap["updateExperimentConfiguration"] = Processor.process_updateExperimentConfiguration
-    self._processMap["updateResourceScheduleing"] = Processor.process_updateResourceScheduleing
-    self._processMap["validateExperiment"] = Processor.process_validateExperiment
-    self._processMap["launchExperiment"] = Processor.process_launchExperiment
-    self._processMap["getExperimentStatus"] = Processor.process_getExperimentStatus
-    self._processMap["getExperimentOutputs"] = Processor.process_getExperimentOutputs
-    self._processMap["getIntermediateOutputs"] = Processor.process_getIntermediateOutputs
-    self._processMap["getJobStatuses"] = Processor.process_getJobStatuses
-    self._processMap["getJobDetails"] = Processor.process_getJobDetails
-    self._processMap["cloneExperiment"] = Processor.process_cloneExperiment
-    self._processMap["terminateExperiment"] = Processor.process_terminateExperiment
-    self._processMap["registerApplicationModule"] = Processor.process_registerApplicationModule
-    self._processMap["getApplicationModule"] = Processor.process_getApplicationModule
-    self._processMap["updateApplicationModule"] = Processor.process_updateApplicationModule
-    self._processMap["getAllAppModules"] = Processor.process_getAllAppModules
-    self._processMap["deleteApplicationModule"] = Processor.process_deleteApplicationModule
-    self._processMap["registerApplicationDeployment"] = Processor.process_registerApplicationDeployment
-    self._processMap["getApplicationDeployment"] = Processor.process_getApplicationDeployment
-    self._processMap["updateApplicationDeployment"] = Processor.process_updateApplicationDeployment
-    self._processMap["deleteApplicationDeployment"] = Processor.process_deleteApplicationDeployment
-    self._processMap["getAllApplicationDeployments"] = Processor.process_getAllApplicationDeployments
-    self._processMap["getAppModuleDeployedResources"] = Processor.process_getAppModuleDeployedResources
-    self._processMap["registerApplicationInterface"] = Processor.process_registerApplicationInterface
-    self._processMap["cloneApplicationInterface"] = Processor.process_cloneApplicationInterface
-    self._processMap["getApplicationInterface"] = Processor.process_getApplicationInterface
-    self._processMap["updateApplicationInterface"] = Processor.process_updateApplicationInterface
-    self._processMap["deleteApplicationInterface"] = Processor.process_deleteApplicationInterface
-    self._processMap["getAllApplicationInterfaceNames"] = Processor.process_getAllApplicationInterfaceNames
-    self._processMap["getAllApplicationInterfaces"] = Processor.process_getAllApplicationInterfaces
-    self._processMap["getApplicationInputs"] = Processor.process_getApplicationInputs
-    self._processMap["getApplicationOutputs"] = Processor.process_getApplicationOutputs
-    self._processMap["getAvailableAppInterfaceComputeResources"] = Processor.process_getAvailableAppInterfaceComputeResources
-    self._processMap["registerComputeResource"] = Processor.process_registerComputeResource
-    self._processMap["getComputeResource"] = Processor.process_getComputeResource
-    self._processMap["getAllComputeResourceNames"] = Processor.process_getAllComputeResourceNames
-    self._processMap["updateComputeResource"] = Processor.process_updateComputeResource
-    self._processMap["deleteComputeResource"] = Processor.process_deleteComputeResource
-    self._processMap["registerStorageResource"] = Processor.process_registerStorageResource
-    self._processMap["getStorageResource"] = Processor.process_getStorageResource
-    self._processMap["getAllStorageResourceNames"] = Processor.process_getAllStorageResourceNames
-    self._processMap["updateStorageResource"] = Processor.process_updateStorageResource
-    self._processMap["deleteStorageResource"] = Processor.process_deleteStorageResource
-    self._processMap["addLocalSubmissionDetails"] = Processor.process_addLocalSubmissionDetails
-    self._processMap["updateLocalSubmissionDetails"] = Processor.process_updateLocalSubmissionDetails
-    self._processMap["getLocalJobSubmission"] = Processor.process_getLocalJobSubmission
-    self._processMap["addSSHJobSubmissionDetails"] = Processor.process_addSSHJobSubmissionDetails
-    self._processMap["addSSHForkJobSubmissionDetails"] = Processor.process_addSSHForkJobSubmissionDetails
-    self._processMap["getSSHJobSubmission"] = Processor.process_getSSHJobSubmission
-    self._processMap["addUNICOREJobSubmissionDetails"] = Processor.process_addUNICOREJobSubmissionDetails
-    self._processMap["getUnicoreJobSubmission"] = Processor.process_getUnicoreJobSubmission
-    self._processMap["addCloudJobSubmissionDetails"] = Processor.process_addCloudJobSubmissionDetails
-    self._processMap["getCloudJobSubmission"] = Processor.process_getCloudJobSubmission
-    self._processMap["updateSSHJobSubmissionDetails"] = Processor.process_updateSSHJobSubmissionDetails
-    self._processMap["updateCloudJobSubmissionDetails"] = Processor.process_updateCloudJobSubmissionDetails
-    self._processMap["updateUnicoreJobSubmissionDetails"] = Processor.process_updateUnicoreJobSubmissionDetails
-    self._processMap["addLocalDataMovementDetails"] = Processor.process_addLocalDataMovementDetails
-    self._processMap["updateLocalDataMovementDetails"] = Processor.process_updateLocalDataMovementDetails
-    self._processMap["getLocalDataMovement"] = Processor.process_getLocalDataMovement
-    self._processMap["addSCPDataMovementDetails"] = Processor.process_addSCPDataMovementDetails
-    self._processMap["updateSCPDataMovementDetails"] = Processor.process_updateSCPDataMovementDetails
-    self._processMap["getSCPDataMovement"] = Processor.process_getSCPDataMovement
-    self._processMap["addUnicoreDataMovementDetails"] = Processor.process_addUnicoreDataMovementDetails
-    self._processMap["updateUnicoreDataMovementDetails"] = Processor.process_updateUnicoreDataMovementDetails
-    self._processMap["getUnicoreDataMovement"] = Processor.process_getUnicoreDataMovement
-    self._processMap["addGridFTPDataMovementDetails"] = Processor.process_addGridFTPDataMovementDetails
-    self._processMap["updateGridFTPDataMovementDetails"] = Processor.process_updateGridFTPDataMovementDetails
-    self._processMap["getGridFTPDataMovement"] = Processor.process_getGridFTPDataMovement
-    self._processMap["changeJobSubmissionPriority"] = Processor.process_changeJobSubmissionPriority
-    self._processMap["changeDataMovementPriority"] = Processor.process_changeDataMovementPriority
-    self._processMap["changeJobSubmissionPriorities"] = Processor.process_changeJobSubmissionPriorities
-    self._processMap["changeDataMovementPriorities"] = Processor.process_changeDataMovementPriorities
-    self._processMap["deleteJobSubmissionInterface"] = Processor.process_deleteJobSubmissionInterface
-    self._processMap["deleteDataMovementInterface"] = Processor.process_deleteDataMovementInterface
-    self._processMap["registerResourceJobManager"] = Processor.process_registerResourceJobManager
-    self._processMap["updateResourceJobManager"] = Processor.process_updateResourceJobManager
-    self._processMap["getResourceJobManager"] = Processor.process_getResourceJobManager
-    self._processMap["deleteResourceJobManager"] = Processor.process_deleteResourceJobManager
-    self._processMap["deleteBatchQueue"] = Processor.process_deleteBatchQueue
-    self._processMap["registerGatewayResourceProfile"] = Processor.process_registerGatewayResourceProfile
-    self._processMap["getGatewayResourceProfile"] = Processor.process_getGatewayResourceProfile
-    self._processMap["updateGatewayResourceProfile"] = Processor.process_updateGatewayResourceProfile
-    self._processMap["deleteGatewayResourceProfile"] = Processor.process_deleteGatewayResourceProfile
-    self._processMap["addGatewayComputeResourcePreference"] = Processor.process_addGatewayComputeResourcePreference
-    self._processMap["addGatewayStoragePreference"] = Processor.process_addGatewayStoragePreference
-    self._processMap["getGatewayComputeResourcePreference"] = Processor.process_getGatewayComputeResourcePreference
-    self._processMap["getGatewayStoragePreference"] = Processor.process_getGatewayStoragePreference
-    self._processMap["getAllGatewayComputeResourcePreferences"] = Processor.process_getAllGatewayComputeResourcePreferences
-    self._processMap["getAllGatewayStoragePreferences"] = Processor.process_getAllGatewayStoragePreferences
-    self._processMap["getAllGatewayResourceProfiles"] = Processor.process_getAllGatewayResourceProfiles
-    self._processMap["updateGatewayComputeResourcePreference"] = Processor.process_updateGatewayComputeResourcePreference
-    self._processMap["updateGatewayStoragePreference"] = Processor.process_updateGatewayStoragePreference
-    self._processMap["deleteGatewayComputeResourcePreference"] = Processor.process_deleteGatewayComputeResourcePreference
-    self._processMap["deleteGatewayStoragePreference"] = Processor.process_deleteGatewayStoragePreference
-    self._processMap["getAllWorkflows"] = Processor.process_getAllWorkflows
-    self._processMap["getWorkflow"] = Processor.process_getWorkflow
-    self._processMap["deleteWorkflow"] = Processor.process_deleteWorkflow
-    self._processMap["registerWorkflow"] = Processor.process_registerWorkflow
-    self._processMap["updateWorkflow"] = Processor.process_updateWorkflow
-    self._processMap["getWorkflowTemplateId"] = Processor.process_getWorkflowTemplateId
-    self._processMap["isWorkflowExistWithName"] = Processor.process_isWorkflowExistWithName
-    self._processMap["registerDataProduct"] = Processor.process_registerDataProduct
-    self._processMap["getDataProduct"] = Processor.process_getDataProduct
-    self._processMap["registerReplicaLocation"] = Processor.process_registerReplicaLocation
-    self._processMap["getParentDataProduct"] = Processor.process_getParentDataProduct
-    self._processMap["getChildDataProducts"] = Processor.process_getChildDataProducts
-    self._processMap["shareResourceWithUsers"] = Processor.process_shareResourceWithUsers
-    self._processMap["revokeSharingOfResourceFromUsers"] = Processor.process_revokeSharingOfResourceFromUsers
-    self._processMap["getAllAccessibleUsers"] = Processor.process_getAllAccessibleUsers
-    self._processMap["createGroup"] = Processor.process_createGroup
-    self._processMap["updateGroup"] = Processor.process_updateGroup
-    self._processMap["deleteGroup"] = Processor.process_deleteGroup
-    self._processMap["getGroup"] = Processor.process_getGroup
-    self._processMap["getAllGroupsUserBelongs"] = Processor.process_getAllGroupsUserBelongs
+  def send_registerReplicaLocation(self, authzToken, replicaLocationModel):
+    self._oprot.writeMessageBegin('registerReplicaLocation', TMessageType.CALL, self._seqid)
+    args = registerReplicaLocation_args()
+    args.authzToken = authzToken
+    args.replicaLocationModel = replicaLocationModel
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
 
-  def process(self, iprot, oprot):
-    (name, type, seqid) = iprot.readMessageBegin()
-    if name not in self._processMap:
-      iprot.skip(TType.STRUCT)
+  def recv_registerReplicaLocation(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
       iprot.readMessageEnd()
-      x = TApplicationException(TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % (name))
-      oprot.writeMessageBegin(name, TMessageType.EXCEPTION, seqid)
-      x.write(oprot)
-      oprot.writeMessageEnd()
-      oprot.trans.flush()
-      return
-    else:
-      self._processMap[name](self, seqid, iprot, oprot)
-    return True
-
-  def process_getAPIVersion(self, seqid, iprot, oprot):
-    args = getAPIVersion_args()
-    args.read(iprot)
+      raise x
+    result = registerReplicaLocation_result()
+    result.read(iprot)
     iprot.readMessageEnd()
-    result = getAPIVersion_result()
-    try:
-      result.success = self._handler.getAPIVersion(args.authzToken)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getAPIVersion", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "registerReplicaLocation failed: unknown result")
 
-  def process_isUserExists(self, seqid, iprot, oprot):
-    args = isUserExists_args()
-    args.read(iprot)
+  def getParentDataProduct(self, authzToken, productUri):
+    """
+    Parameters:
+     - authzToken
+     - productUri
+    """
+    self.send_getParentDataProduct(authzToken, productUri)
+    return self.recv_getParentDataProduct()
+
+  def send_getParentDataProduct(self, authzToken, productUri):
+    self._oprot.writeMessageBegin('getParentDataProduct', TMessageType.CALL, self._seqid)
+    args = getParentDataProduct_args()
+    args.authzToken = authzToken
+    args.productUri = productUri
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_getParentDataProduct(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getParentDataProduct_result()
+    result.read(iprot)
     iprot.readMessageEnd()
-    result = isUserExists_result()
-    try:
-      result.success = self._handler.isUserExists(args.authzToken, args.gatewayId, args.userName)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("isUserExists", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
-
-  def process_addGateway(self, seqid, iprot, oprot):
-    args = addGateway_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = addGateway_result()
-    try:
-      result.success = self._handler.addGateway(args.authzToken, args.gateway)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("addGateway", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getParentDataProduct failed: unknown result")
 
-  def process_getAllUsersInGateway(self, seqid, iprot, oprot):
-    args = getAllUsersInGateway_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = getAllUsersInGateway_result()
-    try:
-      result.success = self._handler.getAllUsersInGateway(args.authzToken, args.gatewayId)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getAllUsersInGateway", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+  def getChildDataProducts(self, authzToken, productUri):
+    """
+    Parameters:
+     - authzToken
+     - productUri
+    """
+    self.send_getChildDataProducts(authzToken, productUri)
+    return self.recv_getChildDataProducts()
 
-  def process_updateGateway(self, seqid, iprot, oprot):
-    args = updateGateway_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = updateGateway_result()
-    try:
-      result.success = self._handler.updateGateway(args.authzToken, args.gatewayId, args.updatedGateway)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("updateGateway", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+  def send_getChildDataProducts(self, authzToken, productUri):
+    self._oprot.writeMessageBegin('getChildDataProducts', TMessageType.CALL, self._seqid)
+    args = getChildDataProducts_args()
+    args.authzToken = authzToken
+    args.productUri = productUri
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
 
-  def process_getGateway(self, seqid, iprot, oprot):
-    args = getGateway_args()
-    args.read(iprot)
+  def recv_getChildDataProducts(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = getChildDataProducts_result()
+    result.read(iprot)
     iprot.readMessageEnd()
-    result = getGateway_result()
-    try:
-      result.success = self._handler.getGateway(args.authzToken, args.gatewayId)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getGateway", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+    if result.success is not None:
+      return result.success
+    if result.ire is not None:
+      raise result.ire
+    if result.ace is not None:
+      raise result.ace
+    if result.ase is not None:
+      raise result.ase
+    if result.ae is not None:
+      raise result.ae
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "getChildDataProducts failed: unknown result")
 
-  def process_deleteGateway(self, seqid, iprot, oprot):
-    args = deleteGateway_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = deleteGateway_result()
-    try:
-      result.success = self._handler.deleteGateway(args.authzToken, args.gatewayId)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("deleteGateway", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+  def shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+    """
+    Group Manager and Data Sharing Related API methods
 
-  def process_getAllGateways(self, seqid, iprot, oprot):
-    args = getAllGateways_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = getAllGateways_result()
-    try:
-      result.success = self._handler.getAllGateways(args.authzToken)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("getAllGateways", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
 
-  def process_isGatewayExist(self, seqid, iprot, oprot):
-    args = isGatewayExist_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = isGatewayExist_result()
-    try:
-      result.success = self._handler.isGatewayExist(args.authzToken, args.gatewayId)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("isGatewayExist", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+    Parameters:
+     - authzToken
+     - resourceId
+     - resourceType
+     - userPermissionList
+    """
+    self.send_shareResourceWithUsers(authzToken, resourceId, resourceType, userPermissionList)
+    return self.recv_shareResourceWithUsers()
 
-  def process_createNotification(self, seqid, iprot, oprot):
-    args = createNotification_args()
-    args.read(iprot)
-    iprot.readMessageEnd()
-    result = createNotification_result()
-    try:
-      result.success = self._handler.createNotification(args.authzToken, args.notification)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-      msg_type = TMessageType.REPLY
-      result.ace = ace
-    except apache.airavata.api.error.ttypes.AiravataSystemException as ase:
-      msg_type = TMessageType.REPLY
-      result.ase = ase
-    except apache.airavata.api.error.ttypes.AuthorizationException as ae:
-      msg_type = TMessageType.REPLY
-      result.ae = ae
-    except Exception as ex:
-      msg_type = TMessageType.EXCEPTION
-      logging.exception(ex)
-      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
-    oprot.writeMessageBegin("createNotification", msg_type, seqid)
-    result.write(oprot)
-    oprot.writeMessageEnd()
-    oprot.trans.flush()
+  def send_shareResourceWithUsers(self, authzToken, resourceId, resourceType, userPermissionList):
+    self._oprot.writeMessageBegin('shareResourceWithUsers', TMessageType.CALL, self._seqid)
+    args = shareResourceWithUsers_args()
+    args.authzToken = authzToken
+    args.resourceId = resourceId
+    args.resourceType = resourceType
+    args.userPermissionList = userPermissionList
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
 
-  def process_updateNotification(self, seqid, iprot, oprot):
-    args = updateNotification_args()
-    args.read(iprot)
+  def recv_shareResourceWithUsers(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = shareResourceWithUsers_result()
+    result.read(iprot)
     iprot.readMessageEnd()
-    result = updateNotification_result()
-    try:
-      result.success = self._handler.updateNotification(args.authzToken, args.notification)
-      msg_type = TMessageType.REPLY
-    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
-      raise
-    except apache.airavata.api.error.ttypes.InvalidRequestException as ire:
-      msg_type = TMessageType.REPLY
-      result.ire = ire
-    except apache.airavata.api.error.ttypes.AiravataClientException as ace:
-    

<TRUNCATED>

[06/31] airavata git commit: Feature request: User Compute Preference

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/81c6ea84/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
new file mode 100644
index 0000000..276b7ca
--- /dev/null
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/userresourceprofile/UserComputeResourcePreference.java
@@ -0,0 +1,1381 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.airavata.model.appcatalog.userresourceprofile;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+/**
+ * User specific preferences for a Computer Resource
+ * 
+ * computeResourceId:
+ *   Corelate the preference to a compute resource.
+ * 
+ * 
+ * loginUserName:
+ *   If turned true, Airavata will override the preferences of better alternatives exist.
+ * 
+ * 
+ * preferredBatchQueue:
+ *  Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
+ * 
+ * scratchLocation:
+ *  Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
+ * 
+ * allocationProjectNumber:
+ *  Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
+ *    allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
+ *    account to be used has to be added to the allocation.
+ * 
+ * resourceSpecificCredentialStoreToken:
+ *  Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
+ *   default credential store.
+ * 
+ */
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class UserComputeResourcePreference implements org.apache.thrift.TBase<UserComputeResourcePreference, UserComputeResourcePreference._Fields>, java.io.Serializable, Cloneable, Comparable<UserComputeResourcePreference> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserComputeResourcePreference");
+
+  private static final org.apache.thrift.protocol.TField COMPUTE_RESOURCE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("computeResourceId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField LOGIN_USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("loginUserName", org.apache.thrift.protocol.TType.STRING, (short)2);
+  private static final org.apache.thrift.protocol.TField PREFERRED_BATCH_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("preferredBatchQueue", org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField SCRATCH_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("scratchLocation", org.apache.thrift.protocol.TType.STRING, (short)4);
+  private static final org.apache.thrift.protocol.TField ALLOCATION_PROJECT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("allocationProjectNumber", org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)6);
+  private static final org.apache.thrift.protocol.TField QUALITY_OF_SERVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("qualityOfService", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField RESERVATION_FIELD_DESC = new org.apache.thrift.protocol.TField("reservation", org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField RESERVATION_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationStartTime", org.apache.thrift.protocol.TType.I64, (short)9);
+  private static final org.apache.thrift.protocol.TField RESERVATION_END_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationEndTime", org.apache.thrift.protocol.TType.I64, (short)10);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new UserComputeResourcePreferenceStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new UserComputeResourcePreferenceTupleSchemeFactory());
+  }
+
+  private String computeResourceId; // required
+  private String loginUserName; // optional
+  private String preferredBatchQueue; // optional
+  private String scratchLocation; // optional
+  private String allocationProjectNumber; // optional
+  private String resourceSpecificCredentialStoreToken; // optional
+  private String qualityOfService; // optional
+  private String reservation; // optional
+  private long reservationStartTime; // optional
+  private long reservationEndTime; // optional
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    COMPUTE_RESOURCE_ID((short)1, "computeResourceId"),
+    LOGIN_USER_NAME((short)2, "loginUserName"),
+    PREFERRED_BATCH_QUEUE((short)3, "preferredBatchQueue"),
+    SCRATCH_LOCATION((short)4, "scratchLocation"),
+    ALLOCATION_PROJECT_NUMBER((short)5, "allocationProjectNumber"),
+    RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)6, "resourceSpecificCredentialStoreToken"),
+    QUALITY_OF_SERVICE((short)7, "qualityOfService"),
+    RESERVATION((short)8, "reservation"),
+    RESERVATION_START_TIME((short)9, "reservationStartTime"),
+    RESERVATION_END_TIME((short)10, "reservationEndTime");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : 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: // COMPUTE_RESOURCE_ID
+          return COMPUTE_RESOURCE_ID;
+        case 2: // LOGIN_USER_NAME
+          return LOGIN_USER_NAME;
+        case 3: // PREFERRED_BATCH_QUEUE
+          return PREFERRED_BATCH_QUEUE;
+        case 4: // SCRATCH_LOCATION
+          return SCRATCH_LOCATION;
+        case 5: // ALLOCATION_PROJECT_NUMBER
+          return ALLOCATION_PROJECT_NUMBER;
+        case 6: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+          return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
+        case 7: // QUALITY_OF_SERVICE
+          return QUALITY_OF_SERVICE;
+        case 8: // RESERVATION
+          return RESERVATION;
+        case 9: // RESERVATION_START_TIME
+          return RESERVATION_START_TIME;
+        case 10: // RESERVATION_END_TIME
+          return RESERVATION_END_TIME;
+        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!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __RESERVATIONSTARTTIME_ISSET_ID = 0;
+  private static final int __RESERVATIONENDTIME_ISSET_ID = 1;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN,_Fields.QUALITY_OF_SERVICE,_Fields.RESERVATION,_Fields.RESERVATION_START_TIME,_Fields.RESERVATION_END_TIME};
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.COMPUTE_RESOURCE_ID, new org.apache.thrift.meta_data.FieldMetaData("computeResourceId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.LOGIN_USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("loginUserName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PREFERRED_BATCH_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("preferredBatchQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.SCRATCH_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("scratchLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.ALLOCATION_PROJECT_NUMBER, new org.apache.thrift.meta_data.FieldMetaData("allocationProjectNumber", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("resourceSpecificCredentialStoreToken", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.QUALITY_OF_SERVICE, new org.apache.thrift.meta_data.FieldMetaData("qualityOfService", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESERVATION, new org.apache.thrift.meta_data.FieldMetaData("reservation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.RESERVATION_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationStartTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    tmpMap.put(_Fields.RESERVATION_END_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationEndTime", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserComputeResourcePreference.class, metaDataMap);
+  }
+
+  public UserComputeResourcePreference() {
+  }
+
+  public UserComputeResourcePreference(
+    String computeResourceId)
+  {
+    this();
+    this.computeResourceId = computeResourceId;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public UserComputeResourcePreference(UserComputeResourcePreference other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetComputeResourceId()) {
+      this.computeResourceId = other.computeResourceId;
+    }
+    if (other.isSetLoginUserName()) {
+      this.loginUserName = other.loginUserName;
+    }
+    if (other.isSetPreferredBatchQueue()) {
+      this.preferredBatchQueue = other.preferredBatchQueue;
+    }
+    if (other.isSetScratchLocation()) {
+      this.scratchLocation = other.scratchLocation;
+    }
+    if (other.isSetAllocationProjectNumber()) {
+      this.allocationProjectNumber = other.allocationProjectNumber;
+    }
+    if (other.isSetResourceSpecificCredentialStoreToken()) {
+      this.resourceSpecificCredentialStoreToken = other.resourceSpecificCredentialStoreToken;
+    }
+    if (other.isSetQualityOfService()) {
+      this.qualityOfService = other.qualityOfService;
+    }
+    if (other.isSetReservation()) {
+      this.reservation = other.reservation;
+    }
+    this.reservationStartTime = other.reservationStartTime;
+    this.reservationEndTime = other.reservationEndTime;
+  }
+
+  public UserComputeResourcePreference deepCopy() {
+    return new UserComputeResourcePreference(this);
+  }
+
+  @Override
+  public void clear() {
+    this.computeResourceId = null;
+    this.loginUserName = null;
+    this.preferredBatchQueue = null;
+    this.scratchLocation = null;
+    this.allocationProjectNumber = null;
+    this.resourceSpecificCredentialStoreToken = null;
+    this.qualityOfService = null;
+    this.reservation = null;
+    setReservationStartTimeIsSet(false);
+    this.reservationStartTime = 0;
+    setReservationEndTimeIsSet(false);
+    this.reservationEndTime = 0;
+  }
+
+  public String getComputeResourceId() {
+    return this.computeResourceId;
+  }
+
+  public void setComputeResourceId(String computeResourceId) {
+    this.computeResourceId = computeResourceId;
+  }
+
+  public void unsetComputeResourceId() {
+    this.computeResourceId = null;
+  }
+
+  /** Returns true if field computeResourceId is set (has been assigned a value) and false otherwise */
+  public boolean isSetComputeResourceId() {
+    return this.computeResourceId != null;
+  }
+
+  public void setComputeResourceIdIsSet(boolean value) {
+    if (!value) {
+      this.computeResourceId = null;
+    }
+  }
+
+  public String getLoginUserName() {
+    return this.loginUserName;
+  }
+
+  public void setLoginUserName(String loginUserName) {
+    this.loginUserName = loginUserName;
+  }
+
+  public void unsetLoginUserName() {
+    this.loginUserName = null;
+  }
+
+  /** Returns true if field loginUserName is set (has been assigned a value) and false otherwise */
+  public boolean isSetLoginUserName() {
+    return this.loginUserName != null;
+  }
+
+  public void setLoginUserNameIsSet(boolean value) {
+    if (!value) {
+      this.loginUserName = null;
+    }
+  }
+
+  public String getPreferredBatchQueue() {
+    return this.preferredBatchQueue;
+  }
+
+  public void setPreferredBatchQueue(String preferredBatchQueue) {
+    this.preferredBatchQueue = preferredBatchQueue;
+  }
+
+  public void unsetPreferredBatchQueue() {
+    this.preferredBatchQueue = null;
+  }
+
+  /** Returns true if field preferredBatchQueue is set (has been assigned a value) and false otherwise */
+  public boolean isSetPreferredBatchQueue() {
+    return this.preferredBatchQueue != null;
+  }
+
+  public void setPreferredBatchQueueIsSet(boolean value) {
+    if (!value) {
+      this.preferredBatchQueue = null;
+    }
+  }
+
+  public String getScratchLocation() {
+    return this.scratchLocation;
+  }
+
+  public void setScratchLocation(String scratchLocation) {
+    this.scratchLocation = scratchLocation;
+  }
+
+  public void unsetScratchLocation() {
+    this.scratchLocation = null;
+  }
+
+  /** Returns true if field scratchLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetScratchLocation() {
+    return this.scratchLocation != null;
+  }
+
+  public void setScratchLocationIsSet(boolean value) {
+    if (!value) {
+      this.scratchLocation = null;
+    }
+  }
+
+  public String getAllocationProjectNumber() {
+    return this.allocationProjectNumber;
+  }
+
+  public void setAllocationProjectNumber(String allocationProjectNumber) {
+    this.allocationProjectNumber = allocationProjectNumber;
+  }
+
+  public void unsetAllocationProjectNumber() {
+    this.allocationProjectNumber = null;
+  }
+
+  /** Returns true if field allocationProjectNumber is set (has been assigned a value) and false otherwise */
+  public boolean isSetAllocationProjectNumber() {
+    return this.allocationProjectNumber != null;
+  }
+
+  public void setAllocationProjectNumberIsSet(boolean value) {
+    if (!value) {
+      this.allocationProjectNumber = null;
+    }
+  }
+
+  public String getResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken;
+  }
+
+  public void setResourceSpecificCredentialStoreToken(String resourceSpecificCredentialStoreToken) {
+    this.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken;
+  }
+
+  public void unsetResourceSpecificCredentialStoreToken() {
+    this.resourceSpecificCredentialStoreToken = null;
+  }
+
+  /** Returns true if field resourceSpecificCredentialStoreToken is set (has been assigned a value) and false otherwise */
+  public boolean isSetResourceSpecificCredentialStoreToken() {
+    return this.resourceSpecificCredentialStoreToken != null;
+  }
+
+  public void setResourceSpecificCredentialStoreTokenIsSet(boolean value) {
+    if (!value) {
+      this.resourceSpecificCredentialStoreToken = null;
+    }
+  }
+
+  public String getQualityOfService() {
+    return this.qualityOfService;
+  }
+
+  public void setQualityOfService(String qualityOfService) {
+    this.qualityOfService = qualityOfService;
+  }
+
+  public void unsetQualityOfService() {
+    this.qualityOfService = null;
+  }
+
+  /** Returns true if field qualityOfService is set (has been assigned a value) and false otherwise */
+  public boolean isSetQualityOfService() {
+    return this.qualityOfService != null;
+  }
+
+  public void setQualityOfServiceIsSet(boolean value) {
+    if (!value) {
+      this.qualityOfService = null;
+    }
+  }
+
+  public String getReservation() {
+    return this.reservation;
+  }
+
+  public void setReservation(String reservation) {
+    this.reservation = reservation;
+  }
+
+  public void unsetReservation() {
+    this.reservation = null;
+  }
+
+  /** Returns true if field reservation is set (has been assigned a value) and false otherwise */
+  public boolean isSetReservation() {
+    return this.reservation != null;
+  }
+
+  public void setReservationIsSet(boolean value) {
+    if (!value) {
+      this.reservation = null;
+    }
+  }
+
+  public long getReservationStartTime() {
+    return this.reservationStartTime;
+  }
+
+  public void setReservationStartTime(long reservationStartTime) {
+    this.reservationStartTime = reservationStartTime;
+    setReservationStartTimeIsSet(true);
+  }
+
+  public void unsetReservationStartTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
+  }
+
+  /** Returns true if field reservationStartTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetReservationStartTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
+  }
+
+  public void setReservationStartTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID, value);
+  }
+
+  public long getReservationEndTime() {
+    return this.reservationEndTime;
+  }
+
+  public void setReservationEndTime(long reservationEndTime) {
+    this.reservationEndTime = reservationEndTime;
+    setReservationEndTimeIsSet(true);
+  }
+
+  public void unsetReservationEndTime() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
+  }
+
+  /** Returns true if field reservationEndTime is set (has been assigned a value) and false otherwise */
+  public boolean isSetReservationEndTime() {
+    return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
+  }
+
+  public void setReservationEndTimeIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      if (value == null) {
+        unsetComputeResourceId();
+      } else {
+        setComputeResourceId((String)value);
+      }
+      break;
+
+    case LOGIN_USER_NAME:
+      if (value == null) {
+        unsetLoginUserName();
+      } else {
+        setLoginUserName((String)value);
+      }
+      break;
+
+    case PREFERRED_BATCH_QUEUE:
+      if (value == null) {
+        unsetPreferredBatchQueue();
+      } else {
+        setPreferredBatchQueue((String)value);
+      }
+      break;
+
+    case SCRATCH_LOCATION:
+      if (value == null) {
+        unsetScratchLocation();
+      } else {
+        setScratchLocation((String)value);
+      }
+      break;
+
+    case ALLOCATION_PROJECT_NUMBER:
+      if (value == null) {
+        unsetAllocationProjectNumber();
+      } else {
+        setAllocationProjectNumber((String)value);
+      }
+      break;
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      if (value == null) {
+        unsetResourceSpecificCredentialStoreToken();
+      } else {
+        setResourceSpecificCredentialStoreToken((String)value);
+      }
+      break;
+
+    case QUALITY_OF_SERVICE:
+      if (value == null) {
+        unsetQualityOfService();
+      } else {
+        setQualityOfService((String)value);
+      }
+      break;
+
+    case RESERVATION:
+      if (value == null) {
+        unsetReservation();
+      } else {
+        setReservation((String)value);
+      }
+      break;
+
+    case RESERVATION_START_TIME:
+      if (value == null) {
+        unsetReservationStartTime();
+      } else {
+        setReservationStartTime((Long)value);
+      }
+      break;
+
+    case RESERVATION_END_TIME:
+      if (value == null) {
+        unsetReservationEndTime();
+      } else {
+        setReservationEndTime((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      return getComputeResourceId();
+
+    case LOGIN_USER_NAME:
+      return getLoginUserName();
+
+    case PREFERRED_BATCH_QUEUE:
+      return getPreferredBatchQueue();
+
+    case SCRATCH_LOCATION:
+      return getScratchLocation();
+
+    case ALLOCATION_PROJECT_NUMBER:
+      return getAllocationProjectNumber();
+
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return getResourceSpecificCredentialStoreToken();
+
+    case QUALITY_OF_SERVICE:
+      return getQualityOfService();
+
+    case RESERVATION:
+      return getReservation();
+
+    case RESERVATION_START_TIME:
+      return getReservationStartTime();
+
+    case RESERVATION_END_TIME:
+      return getReservationEndTime();
+
+    }
+    throw new 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();
+    }
+
+    switch (field) {
+    case COMPUTE_RESOURCE_ID:
+      return isSetComputeResourceId();
+    case LOGIN_USER_NAME:
+      return isSetLoginUserName();
+    case PREFERRED_BATCH_QUEUE:
+      return isSetPreferredBatchQueue();
+    case SCRATCH_LOCATION:
+      return isSetScratchLocation();
+    case ALLOCATION_PROJECT_NUMBER:
+      return isSetAllocationProjectNumber();
+    case RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN:
+      return isSetResourceSpecificCredentialStoreToken();
+    case QUALITY_OF_SERVICE:
+      return isSetQualityOfService();
+    case RESERVATION:
+      return isSetReservation();
+    case RESERVATION_START_TIME:
+      return isSetReservationStartTime();
+    case RESERVATION_END_TIME:
+      return isSetReservationEndTime();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof UserComputeResourcePreference)
+      return this.equals((UserComputeResourcePreference)that);
+    return false;
+  }
+
+  public boolean equals(UserComputeResourcePreference that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_computeResourceId = true && this.isSetComputeResourceId();
+    boolean that_present_computeResourceId = true && that.isSetComputeResourceId();
+    if (this_present_computeResourceId || that_present_computeResourceId) {
+      if (!(this_present_computeResourceId && that_present_computeResourceId))
+        return false;
+      if (!this.computeResourceId.equals(that.computeResourceId))
+        return false;
+    }
+
+    boolean this_present_loginUserName = true && this.isSetLoginUserName();
+    boolean that_present_loginUserName = true && that.isSetLoginUserName();
+    if (this_present_loginUserName || that_present_loginUserName) {
+      if (!(this_present_loginUserName && that_present_loginUserName))
+        return false;
+      if (!this.loginUserName.equals(that.loginUserName))
+        return false;
+    }
+
+    boolean this_present_preferredBatchQueue = true && this.isSetPreferredBatchQueue();
+    boolean that_present_preferredBatchQueue = true && that.isSetPreferredBatchQueue();
+    if (this_present_preferredBatchQueue || that_present_preferredBatchQueue) {
+      if (!(this_present_preferredBatchQueue && that_present_preferredBatchQueue))
+        return false;
+      if (!this.preferredBatchQueue.equals(that.preferredBatchQueue))
+        return false;
+    }
+
+    boolean this_present_scratchLocation = true && this.isSetScratchLocation();
+    boolean that_present_scratchLocation = true && that.isSetScratchLocation();
+    if (this_present_scratchLocation || that_present_scratchLocation) {
+      if (!(this_present_scratchLocation && that_present_scratchLocation))
+        return false;
+      if (!this.scratchLocation.equals(that.scratchLocation))
+        return false;
+    }
+
+    boolean this_present_allocationProjectNumber = true && this.isSetAllocationProjectNumber();
+    boolean that_present_allocationProjectNumber = true && that.isSetAllocationProjectNumber();
+    if (this_present_allocationProjectNumber || that_present_allocationProjectNumber) {
+      if (!(this_present_allocationProjectNumber && that_present_allocationProjectNumber))
+        return false;
+      if (!this.allocationProjectNumber.equals(that.allocationProjectNumber))
+        return false;
+    }
+
+    boolean this_present_resourceSpecificCredentialStoreToken = true && this.isSetResourceSpecificCredentialStoreToken();
+    boolean that_present_resourceSpecificCredentialStoreToken = true && that.isSetResourceSpecificCredentialStoreToken();
+    if (this_present_resourceSpecificCredentialStoreToken || that_present_resourceSpecificCredentialStoreToken) {
+      if (!(this_present_resourceSpecificCredentialStoreToken && that_present_resourceSpecificCredentialStoreToken))
+        return false;
+      if (!this.resourceSpecificCredentialStoreToken.equals(that.resourceSpecificCredentialStoreToken))
+        return false;
+    }
+
+    boolean this_present_qualityOfService = true && this.isSetQualityOfService();
+    boolean that_present_qualityOfService = true && that.isSetQualityOfService();
+    if (this_present_qualityOfService || that_present_qualityOfService) {
+      if (!(this_present_qualityOfService && that_present_qualityOfService))
+        return false;
+      if (!this.qualityOfService.equals(that.qualityOfService))
+        return false;
+    }
+
+    boolean this_present_reservation = true && this.isSetReservation();
+    boolean that_present_reservation = true && that.isSetReservation();
+    if (this_present_reservation || that_present_reservation) {
+      if (!(this_present_reservation && that_present_reservation))
+        return false;
+      if (!this.reservation.equals(that.reservation))
+        return false;
+    }
+
+    boolean this_present_reservationStartTime = true && this.isSetReservationStartTime();
+    boolean that_present_reservationStartTime = true && that.isSetReservationStartTime();
+    if (this_present_reservationStartTime || that_present_reservationStartTime) {
+      if (!(this_present_reservationStartTime && that_present_reservationStartTime))
+        return false;
+      if (this.reservationStartTime != that.reservationStartTime)
+        return false;
+    }
+
+    boolean this_present_reservationEndTime = true && this.isSetReservationEndTime();
+    boolean that_present_reservationEndTime = true && that.isSetReservationEndTime();
+    if (this_present_reservationEndTime || that_present_reservationEndTime) {
+      if (!(this_present_reservationEndTime && that_present_reservationEndTime))
+        return false;
+      if (this.reservationEndTime != that.reservationEndTime)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_computeResourceId = true && (isSetComputeResourceId());
+    list.add(present_computeResourceId);
+    if (present_computeResourceId)
+      list.add(computeResourceId);
+
+    boolean present_loginUserName = true && (isSetLoginUserName());
+    list.add(present_loginUserName);
+    if (present_loginUserName)
+      list.add(loginUserName);
+
+    boolean present_preferredBatchQueue = true && (isSetPreferredBatchQueue());
+    list.add(present_preferredBatchQueue);
+    if (present_preferredBatchQueue)
+      list.add(preferredBatchQueue);
+
+    boolean present_scratchLocation = true && (isSetScratchLocation());
+    list.add(present_scratchLocation);
+    if (present_scratchLocation)
+      list.add(scratchLocation);
+
+    boolean present_allocationProjectNumber = true && (isSetAllocationProjectNumber());
+    list.add(present_allocationProjectNumber);
+    if (present_allocationProjectNumber)
+      list.add(allocationProjectNumber);
+
+    boolean present_resourceSpecificCredentialStoreToken = true && (isSetResourceSpecificCredentialStoreToken());
+    list.add(present_resourceSpecificCredentialStoreToken);
+    if (present_resourceSpecificCredentialStoreToken)
+      list.add(resourceSpecificCredentialStoreToken);
+
+    boolean present_qualityOfService = true && (isSetQualityOfService());
+    list.add(present_qualityOfService);
+    if (present_qualityOfService)
+      list.add(qualityOfService);
+
+    boolean present_reservation = true && (isSetReservation());
+    list.add(present_reservation);
+    if (present_reservation)
+      list.add(reservation);
+
+    boolean present_reservationStartTime = true && (isSetReservationStartTime());
+    list.add(present_reservationStartTime);
+    if (present_reservationStartTime)
+      list.add(reservationStartTime);
+
+    boolean present_reservationEndTime = true && (isSetReservationEndTime());
+    list.add(present_reservationEndTime);
+    if (present_reservationEndTime)
+      list.add(reservationEndTime);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(UserComputeResourcePreference other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetComputeResourceId()).compareTo(other.isSetComputeResourceId());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetComputeResourceId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.computeResourceId, other.computeResourceId);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetLoginUserName()).compareTo(other.isSetLoginUserName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetLoginUserName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginUserName, other.loginUserName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetPreferredBatchQueue()).compareTo(other.isSetPreferredBatchQueue());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPreferredBatchQueue()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.preferredBatchQueue, other.preferredBatchQueue);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetScratchLocation()).compareTo(other.isSetScratchLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetScratchLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scratchLocation, other.scratchLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAllocationProjectNumber()).compareTo(other.isSetAllocationProjectNumber());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAllocationProjectNumber()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allocationProjectNumber, other.allocationProjectNumber);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetResourceSpecificCredentialStoreToken()).compareTo(other.isSetResourceSpecificCredentialStoreToken());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resourceSpecificCredentialStoreToken, other.resourceSpecificCredentialStoreToken);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetQualityOfService()).compareTo(other.isSetQualityOfService());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetQualityOfService()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qualityOfService, other.qualityOfService);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReservation()).compareTo(other.isSetReservation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReservation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservation, other.reservation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReservationStartTime()).compareTo(other.isSetReservationStartTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReservationStartTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationStartTime, other.reservationStartTime);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetReservationEndTime()).compareTo(other.isSetReservationEndTime());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetReservationEndTime()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationEndTime, other.reservationEndTime);
+      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);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("UserComputeResourcePreference(");
+    boolean first = true;
+
+    sb.append("computeResourceId:");
+    if (this.computeResourceId == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.computeResourceId);
+    }
+    first = false;
+    if (isSetLoginUserName()) {
+      if (!first) sb.append(", ");
+      sb.append("loginUserName:");
+      if (this.loginUserName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.loginUserName);
+      }
+      first = false;
+    }
+    if (isSetPreferredBatchQueue()) {
+      if (!first) sb.append(", ");
+      sb.append("preferredBatchQueue:");
+      if (this.preferredBatchQueue == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.preferredBatchQueue);
+      }
+      first = false;
+    }
+    if (isSetScratchLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("scratchLocation:");
+      if (this.scratchLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.scratchLocation);
+      }
+      first = false;
+    }
+    if (isSetAllocationProjectNumber()) {
+      if (!first) sb.append(", ");
+      sb.append("allocationProjectNumber:");
+      if (this.allocationProjectNumber == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.allocationProjectNumber);
+      }
+      first = false;
+    }
+    if (isSetResourceSpecificCredentialStoreToken()) {
+      if (!first) sb.append(", ");
+      sb.append("resourceSpecificCredentialStoreToken:");
+      if (this.resourceSpecificCredentialStoreToken == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.resourceSpecificCredentialStoreToken);
+      }
+      first = false;
+    }
+    if (isSetQualityOfService()) {
+      if (!first) sb.append(", ");
+      sb.append("qualityOfService:");
+      if (this.qualityOfService == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.qualityOfService);
+      }
+      first = false;
+    }
+    if (isSetReservation()) {
+      if (!first) sb.append(", ");
+      sb.append("reservation:");
+      if (this.reservation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.reservation);
+      }
+      first = false;
+    }
+    if (isSetReservationStartTime()) {
+      if (!first) sb.append(", ");
+      sb.append("reservationStartTime:");
+      sb.append(this.reservationStartTime);
+      first = false;
+    }
+    if (isSetReservationEndTime()) {
+      if (!first) sb.append(", ");
+      sb.append("reservationEndTime:");
+      sb.append(this.reservationEndTime);
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetComputeResourceId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'computeResourceId' is unset! Struct:" + toString());
+    }
+
+    // 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 {
+    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 UserComputeResourcePreferenceStandardSchemeFactory implements SchemeFactory {
+    public UserComputeResourcePreferenceStandardScheme getScheme() {
+      return new UserComputeResourcePreferenceStandardScheme();
+    }
+  }
+
+  private static class UserComputeResourcePreferenceStandardScheme extends StandardScheme<UserComputeResourcePreference> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, UserComputeResourcePreference 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: // COMPUTE_RESOURCE_ID
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.computeResourceId = iprot.readString();
+              struct.setComputeResourceIdIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // LOGIN_USER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.loginUserName = iprot.readString();
+              struct.setLoginUserNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // PREFERRED_BATCH_QUEUE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.preferredBatchQueue = iprot.readString();
+              struct.setPreferredBatchQueueIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // SCRATCH_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.scratchLocation = iprot.readString();
+              struct.setScratchLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // ALLOCATION_PROJECT_NUMBER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.allocationProjectNumber = iprot.readString();
+              struct.setAllocationProjectNumberIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.resourceSpecificCredentialStoreToken = iprot.readString();
+              struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // QUALITY_OF_SERVICE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.qualityOfService = iprot.readString();
+              struct.setQualityOfServiceIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // RESERVATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.reservation = iprot.readString();
+              struct.setReservationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 9: // RESERVATION_START_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.reservationStartTime = iprot.readI64();
+              struct.setReservationStartTimeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // RESERVATION_END_TIME
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.reservationEndTime = iprot.readI64();
+              struct.setReservationEndTimeIsSet(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();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.computeResourceId != null) {
+        oprot.writeFieldBegin(COMPUTE_RESOURCE_ID_FIELD_DESC);
+        oprot.writeString(struct.computeResourceId);
+        oprot.writeFieldEnd();
+      }
+      if (struct.loginUserName != null) {
+        if (struct.isSetLoginUserName()) {
+          oprot.writeFieldBegin(LOGIN_USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.loginUserName);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.preferredBatchQueue != null) {
+        if (struct.isSetPreferredBatchQueue()) {
+          oprot.writeFieldBegin(PREFERRED_BATCH_QUEUE_FIELD_DESC);
+          oprot.writeString(struct.preferredBatchQueue);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.scratchLocation != null) {
+        if (struct.isSetScratchLocation()) {
+          oprot.writeFieldBegin(SCRATCH_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.scratchLocation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.allocationProjectNumber != null) {
+        if (struct.isSetAllocationProjectNumber()) {
+          oprot.writeFieldBegin(ALLOCATION_PROJECT_NUMBER_FIELD_DESC);
+          oprot.writeString(struct.allocationProjectNumber);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.resourceSpecificCredentialStoreToken != null) {
+        if (struct.isSetResourceSpecificCredentialStoreToken()) {
+          oprot.writeFieldBegin(RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC);
+          oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.qualityOfService != null) {
+        if (struct.isSetQualityOfService()) {
+          oprot.writeFieldBegin(QUALITY_OF_SERVICE_FIELD_DESC);
+          oprot.writeString(struct.qualityOfService);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.reservation != null) {
+        if (struct.isSetReservation()) {
+          oprot.writeFieldBegin(RESERVATION_FIELD_DESC);
+          oprot.writeString(struct.reservation);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetReservationStartTime()) {
+        oprot.writeFieldBegin(RESERVATION_START_TIME_FIELD_DESC);
+        oprot.writeI64(struct.reservationStartTime);
+        oprot.writeFieldEnd();
+      }
+      if (struct.isSetReservationEndTime()) {
+        oprot.writeFieldBegin(RESERVATION_END_TIME_FIELD_DESC);
+        oprot.writeI64(struct.reservationEndTime);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class UserComputeResourcePreferenceTupleSchemeFactory implements SchemeFactory {
+    public UserComputeResourcePreferenceTupleScheme getScheme() {
+      return new UserComputeResourcePreferenceTupleScheme();
+    }
+  }
+
+  private static class UserComputeResourcePreferenceTupleScheme extends TupleScheme<UserComputeResourcePreference> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.computeResourceId);
+      BitSet optionals = new BitSet();
+      if (struct.isSetLoginUserName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetPreferredBatchQueue()) {
+        optionals.set(1);
+      }
+      if (struct.isSetScratchLocation()) {
+        optionals.set(2);
+      }
+      if (struct.isSetAllocationProjectNumber()) {
+        optionals.set(3);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        optionals.set(4);
+      }
+      if (struct.isSetQualityOfService()) {
+        optionals.set(5);
+      }
+      if (struct.isSetReservation()) {
+        optionals.set(6);
+      }
+      if (struct.isSetReservationStartTime()) {
+        optionals.set(7);
+      }
+      if (struct.isSetReservationEndTime()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetLoginUserName()) {
+        oprot.writeString(struct.loginUserName);
+      }
+      if (struct.isSetPreferredBatchQueue()) {
+        oprot.writeString(struct.preferredBatchQueue);
+      }
+      if (struct.isSetScratchLocation()) {
+        oprot.writeString(struct.scratchLocation);
+      }
+      if (struct.isSetAllocationProjectNumber()) {
+        oprot.writeString(struct.allocationProjectNumber);
+      }
+      if (struct.isSetResourceSpecificCredentialStoreToken()) {
+        oprot.writeString(struct.resourceSpecificCredentialStoreToken);
+      }
+      if (struct.isSetQualityOfService()) {
+        oprot.writeString(struct.qualityOfService);
+      }
+      if (struct.isSetReservation()) {
+        oprot.writeString(struct.reservation);
+      }
+      if (struct.isSetReservationStartTime()) {
+        oprot.writeI64(struct.reservationStartTime);
+      }
+      if (struct.isSetReservationEndTime()) {
+        oprot.writeI64(struct.reservationEndTime);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, UserComputeResourcePreference struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.computeResourceId = iprot.readString();
+      struct.setComputeResourceIdIsSet(true);
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.loginUserName = iprot.readString();
+        struct.setLoginUserNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.preferredBatchQueue = iprot.readString();
+        struct.setPreferredBatchQueueIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.scratchLocation = iprot.readString();
+        struct.setScratchLocationIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.allocationProjectNumber = iprot.readString();
+        struct.setAllocationProjectNumberIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.resourceSpecificCredentialStoreToken = iprot.readString();
+        struct.setResourceSpecificCredentialStoreTokenIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.qualityOfService = iprot.readString();
+        struct.setQualityOfServiceIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.reservation = iprot.readString();
+        struct.setReservationIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.reservationStartTime = iprot.readI64();
+        struct.setReservationStartTimeIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.reservationEndTime = iprot.readI64();
+        struct.setReservationEndTimeIsSet(true);
+      }
+    }
+  }
+
+}
+


[09/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
index 9e70d1c..c0a7495 100644
--- a/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
+++ b/modules/registry/registry-server/registry-api-stubs/src/main/java/org/apache/airavata/registry/api/exception/RegistryServiceException.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-05")
 public class RegistryServiceException extends TException implements org.apache.thrift.TBase<RegistryServiceException, RegistryServiceException._Fields>, java.io.Serializable, Cloneable, Comparable<RegistryServiceException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("RegistryServiceException");
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index 1f37cd9..54bd588 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -2979,6 +2979,53 @@ service Airavata {
 
 
     /**
+       *
+       * Fetch all Compute Resource Preferences of a registered gateway profile.
+       *
+       * @param userId
+       *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+       *
+       * @param gatewayID
+       *   The identifier for the gateway profile to be requested
+       *
+       * @return computeResourcePreference
+       *   Returns the ComputeResourcePreference object.
+       *
+      */
+      list<user_resource_profile_model.UserComputeResourcePreference>
+                getAllUserComputeResourcePreferences(1: required security_model.AuthzToken authzToken,
+                2: required string userId,
+                3: required string gatewayID)
+      	throws (1: airavata_errors.InvalidRequestException ire,
+                2: airavata_errors.AiravataClientException ace,
+                3: airavata_errors.AiravataSystemException ase,
+                4: airavata_errors.AuthorizationException ae)
+
+      /**
+      * Fetch all User Storage Resource Preferences of a registered user profile.
+      *
+      * @param userId
+      *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+      *
+      * @param gatewayID
+      *   The identifier for the gateway profile to be requested
+      *
+      * @return StoragePreference
+      *   Returns the StoragePreference object.
+      *
+     */
+
+      list<user_resource_profile_model.UserStoragePreference>
+                  getAllUserStoragePreferences(1: required security_model.AuthzToken authzToken,
+                  2: required string userId,
+                  3: required string gatewayID)
+        	throws (1: airavata_errors.InvalidRequestException ire,
+                  2: airavata_errors.AiravataClientException ace,
+                  3: airavata_errors.AiravataSystemException ase,
+                  4: airavata_errors.AuthorizationException ae)
+
+
+    /**
     *
     * Fetch all user resources Profiles registered
     *

http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/thrift-interface-descriptions/component-cpis/registry-api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/component-cpis/registry-api.thrift b/thrift-interface-descriptions/component-cpis/registry-api.thrift
index 8fc9445..d2ff9a7 100644
--- a/thrift-interface-descriptions/component-cpis/registry-api.thrift
+++ b/thrift-interface-descriptions/component-cpis/registry-api.thrift
@@ -2194,6 +2194,40 @@ service RegistryService {
                            3: required string userStorageResourceId)
                      throws (1: registry_api_errors.RegistryServiceException rse)
 
+                            /**
+                              *
+                              * Fetch all User Compute Resource Preferences of a registered user resource profile.
+                              *
+                              * @param userId
+                              *
+                              * @param gatewayID
+                              *   The identifier for the gateway profile to be requested
+                              *
+                              * @return computeResourcePreference
+                              *   Returns the ComputeResourcePreference object.
+                              *
+                             */
+                             list<user_resource_profile_model.UserComputeResourcePreference>
+                                       getAllUserComputeResourcePreferences(1: required string userId,
+                                       2: required string gatewayID)
+                               throws (1: registry_api_errors.RegistryServiceException rse)
+
+                             /**
+                             * Fetch all User Storage Resource Preferences of a registered user resource profile.
+                             *
+                             * @param gatewayID
+                             *   The identifier for the gateway profile to be requested
+                             *
+                             * @return StoragePreference
+                             *   Returns the StoragePreference object.
+                             *
+                            */
+
+                             list<user_resource_profile_model.UserStoragePreference>
+                                         getAllUserStoragePreferences(1: required string userId,
+                                         2: required string gatewayID)
+                                   throws (1: registry_api_errors.RegistryServiceException rse)
+
 
                /**
                *


[20/31] airavata git commit: correcting the registry code, testing not yet complete

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/8469effc/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 1ec47c7..77a2c9d 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -51,7 +51,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-01")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
 public class Airavata {
 
   public interface Iface {
@@ -2638,6 +2638,45 @@ public class Airavata {
 
     /**
      * 
+     * Fetch all Compute Resource Preferences of a registered gateway profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @return computeResourcePreference
+     *   Returns the ComputeResourcePreference object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getAllUserComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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;
+
+    /**
+     * Fetch all User Storage Resource Preferences of a registered user profile.
+     * 
+     * @param userId
+     *   The identifier of the user resource profile to request to fetch the particular storage resource preference.
+     * 
+     * @param gatewayID
+     *   The identifier for the gateway profile to be requested
+     * 
+     * @return StoragePreference
+     *   Returns the StoragePreference object.
+     * 
+     * 
+     * @param authzToken
+     * @param userId
+     * @param gatewayID
+     */
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getAllUserStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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;
+
+    /**
+     * 
      * Fetch all user resources Profiles registered
      * 
      * @return UserResourceProfile
@@ -3091,6 +3130,10 @@ public class Airavata {
 
     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 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 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 void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws 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;
@@ -8194,6 +8237,80 @@ public class Airavata {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getUserStoragePreference failed: unknown result");
     }
 
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> getAllUserComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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
+    {
+      send_getAllUserComputeResourcePreferences(authzToken, userId, gatewayID);
+      return recv_getAllUserComputeResourcePreferences();
+    }
+
+    public void send_getAllUserComputeResourcePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getAllUserComputeResourcePreferences_args args = new getAllUserComputeResourcePreferences_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getAllUserComputeResourcePreferences", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> recv_getAllUserComputeResourcePreferences() 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
+    {
+      getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+      receiveBase(result, "getAllUserComputeResourcePreferences");
+      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, "getAllUserComputeResourcePreferences failed: unknown result");
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> getAllUserStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, 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
+    {
+      send_getAllUserStoragePreferences(authzToken, userId, gatewayID);
+      return recv_getAllUserStoragePreferences();
+    }
+
+    public void send_getAllUserStoragePreferences(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID) throws org.apache.thrift.TException
+    {
+      getAllUserStoragePreferences_args args = new getAllUserStoragePreferences_args();
+      args.setAuthzToken(authzToken);
+      args.setUserId(userId);
+      args.setGatewayID(gatewayID);
+      sendBase("getAllUserStoragePreferences", args);
+    }
+
+    public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> recv_getAllUserStoragePreferences() 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
+    {
+      getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+      receiveBase(result, "getAllUserStoragePreferences");
+      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, "getAllUserStoragePreferences failed: unknown result");
+    }
+
     public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile> getAllUserResourceProfiles(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
     {
       send_getAllUserResourceProfiles(authzToken);
@@ -14245,6 +14362,82 @@ public class Airavata {
       }
     }
 
+    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 {
+      checkReady();
+      getAllUserComputeResourcePreferences_call method_call = new getAllUserComputeResourcePreferences_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserComputeResourcePreferences_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      public getAllUserComputeResourcePreferences_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserComputeResourcePreferences", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserComputeResourcePreferences_args args = new getAllUserComputeResourcePreferences_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference> 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!");
+        }
+        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_getAllUserComputeResourcePreferences();
+      }
+    }
+
+    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 {
+      checkReady();
+      getAllUserStoragePreferences_call method_call = new getAllUserStoragePreferences_call(authzToken, userId, gatewayID, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class getAllUserStoragePreferences_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private org.apache.airavata.model.security.AuthzToken authzToken;
+      private String userId;
+      private String gatewayID;
+      public getAllUserStoragePreferences_call(org.apache.airavata.model.security.AuthzToken authzToken, String userId, String gatewayID, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.authzToken = authzToken;
+        this.userId = userId;
+        this.gatewayID = gatewayID;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllUserStoragePreferences", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        getAllUserStoragePreferences_args args = new getAllUserStoragePreferences_args();
+        args.setAuthzToken(authzToken);
+        args.setUserId(userId);
+        args.setGatewayID(gatewayID);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference> 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!");
+        }
+        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_getAllUserStoragePreferences();
+      }
+    }
+
     public void getAllUserResourceProfiles(org.apache.airavata.model.security.AuthzToken authzToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getAllUserResourceProfiles_call method_call = new getAllUserResourceProfiles_call(authzToken, resultHandler, this, ___protocolFactory, ___transport);
@@ -15330,6 +15523,8 @@ public class Airavata {
       processMap.put("addUserStoragePreference", new addUserStoragePreference());
       processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
       processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserComputeResourcePreferences", new getAllUserComputeResourcePreferences());
+      processMap.put("getAllUserStoragePreferences", new getAllUserStoragePreferences());
       processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
       processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
       processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
@@ -19524,6 +19719,66 @@ public class Airavata {
       }
     }
 
+    public static class getAllUserComputeResourcePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserComputeResourcePreferences_args> {
+      public getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
+      }
+
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserComputeResourcePreferences_result getResult(I iface, getAllUserComputeResourcePreferences_args args) throws org.apache.thrift.TException {
+        getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
+        try {
+          result.success = iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
+    public static class getAllUserStoragePreferences<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserStoragePreferences_args> {
+      public getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
+      }
+
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public getAllUserStoragePreferences_result getResult(I iface, getAllUserStoragePreferences_args args) throws org.apache.thrift.TException {
+        getAllUserStoragePreferences_result result = new getAllUserStoragePreferences_result();
+        try {
+          result.success = iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID);
+        } catch (org.apache.airavata.model.error.InvalidRequestException ire) {
+          result.ire = ire;
+        } catch (org.apache.airavata.model.error.AiravataClientException ace) {
+          result.ace = ace;
+        } catch (org.apache.airavata.model.error.AiravataSystemException ase) {
+          result.ase = ase;
+        } catch (org.apache.airavata.model.error.AuthorizationException ae) {
+          result.ae = ae;
+        }
+        return result;
+      }
+    }
+
     public static class getAllUserResourceProfiles<I extends Iface> extends org.apache.thrift.ProcessFunction<I, getAllUserResourceProfiles_args> {
       public getAllUserResourceProfiles() {
         super("getAllUserResourceProfiles");
@@ -20434,6 +20689,8 @@ public class Airavata {
       processMap.put("addUserStoragePreference", new addUserStoragePreference());
       processMap.put("getUserComputeResourcePreference", new getUserComputeResourcePreference());
       processMap.put("getUserStoragePreference", new getUserStoragePreference());
+      processMap.put("getAllUserComputeResourcePreferences", new getAllUserComputeResourcePreferences());
+      processMap.put("getAllUserStoragePreferences", new getAllUserStoragePreferences());
       processMap.put("getAllUserResourceProfiles", new getAllUserResourceProfiles());
       processMap.put("updateUserComputeResourcePreference", new updateUserComputeResourcePreference());
       processMap.put("updateUserStoragePreference", new updateUserStoragePreference());
@@ -30385,20 +30642,20 @@ public class Airavata {
       }
     }
 
-    public static class getAllUserResourceProfiles<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllUserResourceProfiles_args, 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 getAllUserComputeResourcePreferences() {
+        super("getAllUserComputeResourcePreferences");
       }
 
-      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
-        return new getAllUserResourceProfiles_args();
+      public getAllUserComputeResourcePreferences_args getEmptyArgsInstance() {
+        return new getAllUserComputeResourcePreferences_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>>() { 
-          public void onComplete(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) {
+            getAllUserComputeResourcePreferences_result result = new getAllUserComputeResourcePreferences_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -30411,7 +30668,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30452,27 +30709,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllUserResourceProfiles_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> resultHandler) throws 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 {
+        iface.getAllUserComputeResourcePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, 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 getAllUserStoragePreferences() {
+        super("getAllUserStoragePreferences");
       }
 
-      public updateUserComputeResourcePreference_args getEmptyArgsInstance() {
-        return new updateUserComputeResourcePreference_args();
+      public getAllUserStoragePreferences_args getEmptyArgsInstance() {
+        return new getAllUserStoragePreferences_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(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) {
+            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;
@@ -30484,7 +30740,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30525,27 +30781,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws 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 {
+        iface.getAllUserStoragePreferences(args.authzToken, args.userId, args.gatewayID,resultHandler);
       }
     }
 
-    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, 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 getAllUserResourceProfiles() {
+        super("getAllUserResourceProfiles");
       }
 
-      public updateUserStoragePreference_args getEmptyArgsInstance() {
-        return new updateUserStoragePreference_args();
+      public getAllUserResourceProfiles_args getEmptyArgsInstance() {
+        return new getAllUserResourceProfiles_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(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) {
+            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;
@@ -30557,7 +30812,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30598,25 +30853,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, updateUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws 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 {
+        iface.getAllUserResourceProfiles(args.authzToken,resultHandler);
       }
     }
 
-    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, Boolean> {
-      public deleteUserComputeResourcePreference() {
-        super("deleteUserComputeResourcePreference");
+    public static class updateUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserComputeResourcePreference_args, 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteUserComputeResourcePreference_result result = new deleteUserComputeResourcePreference_result();
+            updateUserComputeResourcePreference_result result = new updateUserComputeResourcePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30630,7 +30885,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30671,25 +30926,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteUserComputeResourcePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws 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 {
+        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, Boolean> {
-      public deleteUserStoragePreference() {
-        super("deleteUserStoragePreference");
+    public static class updateUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateUserStoragePreference_args, 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            deleteUserStoragePreference_result result = new deleteUserStoragePreference_result();
+            updateUserStoragePreference_result result = new updateUserStoragePreference_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -30703,7 +30958,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30744,26 +30999,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws 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 {
+        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, List<String>> {
-      public getAllWorkflows() {
-        super("getAllWorkflows");
+    public static class deleteUserComputeResourcePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserComputeResourcePreference_args, Boolean> {
+      public deleteUserComputeResourcePreference() {
+        super("deleteUserComputeResourcePreference");
       }
 
-      public getAllWorkflows_args getEmptyArgsInstance() {
-        return new getAllWorkflows_args();
+      public deleteUserComputeResourcePreference_args getEmptyArgsInstance() {
+        return new deleteUserComputeResourcePreference_args();
       }
 
-      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<String>>() { 
-          public void onComplete(List<String> o) {
-            getAllWorkflows_result result = new getAllWorkflows_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(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;
@@ -30775,7 +31031,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -30816,26 +31072,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws 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 {
+        iface.deleteUserComputeResourcePreference(args.authzToken, args.userId, args.gatewayID, args.userComputeResourceId,resultHandler);
       }
     }
 
-    public static class getWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflow_args, org.apache.airavata.model.WorkflowModel> {
-      public getWorkflow() {
-        super("getWorkflow");
+    public static class deleteUserStoragePreference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteUserStoragePreference_args, Boolean> {
+      public deleteUserStoragePreference() {
+        super("deleteUserStoragePreference");
       }
 
-      public getWorkflow_args getEmptyArgsInstance() {
-        return new getWorkflow_args();
+      public deleteUserStoragePreference_args getEmptyArgsInstance() {
+        return new deleteUserStoragePreference_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<org.apache.airavata.model.WorkflowModel>() { 
-          public void onComplete(org.apache.airavata.model.WorkflowModel o) {
-            getWorkflow_result result = new getWorkflow_result();
+        return new AsyncMethodCallback<Boolean>() { 
+          public void onComplete(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;
@@ -30847,7 +31104,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getWorkflow_result result = new getWorkflow_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);
@@ -30888,25 +31145,26 @@ public class Airavata {
         return false;
       }
 
-      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, deleteUserStoragePreference_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.deleteUserStoragePreference(args.authzToken, args.userId, args.gatewayID, args.userStorageId,resultHandler);
       }
     }
 
-    public static class deleteWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteWorkflow_args, Void> {
-      public deleteWorkflow() {
-        super("deleteWorkflow");
+    public static class getAllWorkflows<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllWorkflows_args, List<String>> {
+      public getAllWorkflows() {
+        super("getAllWorkflows");
       }
 
-      public deleteWorkflow_args getEmptyArgsInstance() {
-        return new deleteWorkflow_args();
+      public getAllWorkflows_args getEmptyArgsInstance() {
+        return new getAllWorkflows_args();
       }
 
-      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Void>() { 
-          public void onComplete(Void o) {
-            deleteWorkflow_result result = new deleteWorkflow_result();
+        return new AsyncMethodCallback<List<String>>() { 
+          public void onComplete(List<String> o) {
+            getAllWorkflows_result result = new getAllWorkflows_result();
+            result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -30918,7 +31176,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteWorkflow_result result = new deleteWorkflow_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);
@@ -30959,25 +31217,25 @@ public class Airavata {
         return false;
       }
 
-      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, getAllWorkflows_args args, org.apache.thrift.async.AsyncMethodCallback<List<String>> resultHandler) throws TException {
+        iface.getAllWorkflows(args.authzToken, args.gatewayId,resultHandler);
       }
     }
 
-    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, 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 getWorkflow() {
+        super("getWorkflow");
       }
 
-      public registerWorkflow_args getEmptyArgsInstance() {
-        return new registerWorkflow_args();
+      public getWorkflow_args getEmptyArgsInstance() {
+        return new getWorkflow_args();
       }
 
-      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.WorkflowModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<String>() { 
-          public void onComplete(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) {
+            getWorkflow_result result = new getWorkflow_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -30990,7 +31248,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31031,25 +31289,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws 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 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new 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;
@@ -31061,7 +31319,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31102,25 +31360,25 @@ public class Airavata {
         return false;
       }
 
-      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, deleteWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws TException {
+        iface.deleteWorkflow(args.authzToken, args.workflowTemplateId,resultHandler);
       }
     }
 
-    public static class getWorkflowTemplateId<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getWorkflowTemplateId_args, String> {
-      public getWorkflowTemplateId() {
-        super("getWorkflowTemplateId");
+    public static class registerWorkflow<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerWorkflow_args, String> {
+      public registerWorkflow() {
+        super("registerWorkflow");
       }
 
-      public getWorkflowTemplateId_args getEmptyArgsInstance() {
-        return new getWorkflowTemplateId_args();
+      public registerWorkflow_args getEmptyArgsInstance() {
+        return new registerWorkflow_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final 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();
+            registerWorkflow_result result = new registerWorkflow_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31133,7 +31391,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getWorkflowTemplateId_result result = new getWorkflowTemplateId_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);
@@ -31174,27 +31432,25 @@ public class Airavata {
         return false;
       }
 
-      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, registerWorkflow_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws 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, 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 AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Void> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            isWorkflowExistWithName_result result = new isWorkflowExistWithName_result();
-            result.success = o;
-            result.setSuccessIsSet(true);
+        return new 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;
@@ -31206,7 +31462,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31247,25 +31503,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, isWorkflowExistWithName_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws 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 static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, 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 registerDataProduct_args getEmptyArgsInstance() {
-        return new registerDataProduct_args();
+      public getWorkflowTemplateId_args getEmptyArgsInstance() {
+        return new getWorkflowTemplateId_args();
       }
 
       public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(String o) {
-            registerDataProduct_result result = new registerDataProduct_result();
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31278,7 +31534,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            registerDataProduct_result result = new registerDataProduct_result();
+            getWorkflowTemplateId_result result = new getWorkflowTemplateId_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -31319,26 +31575,27 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws 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 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 isWorkflowExistWithName() {
+        super("isWorkflowExistWithName");
       }
 
-      public getDataProduct_args getEmptyArgsInstance() {
-        return new getDataProduct_args();
+      public isWorkflowExistWithName_args getEmptyArgsInstance() {
+        return new isWorkflowExistWithName_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new 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) {
+            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;
@@ -31350,7 +31607,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31391,25 +31648,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws 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 {
+        iface.isWorkflowExistWithName(args.authzToken, args.workflowName,resultHandler);
       }
     }
 
-    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, String> {
-      public registerReplicaLocation() {
-        super("registerReplicaLocation");
+    public static class registerDataProduct<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerDataProduct_args, 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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<String>() { 
           public void onComplete(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);
@@ -31422,7 +31679,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31463,25 +31720,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws 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 {
+        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) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new 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);
@@ -31494,7 +31751,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase 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);
@@ -31535,99 +31792,26 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
-        iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
-      }
-    }
-
-    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, List<org.apache.airavata.model.data.replica.DataProductModel>> {
-      public getChildDataProducts() {
-        super("getChildDataProducts");
-      }
-
-      public getChildDataProducts_args getEmptyArgsInstance() {
-        return new getChildDataProducts_args();
-      }
-
-      public AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
-        final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
-          public void onComplete(List<org.apache.airavata.model.data.replica.DataProductModel> o) {
-            getChildDataProducts_result result = new getChildDataProducts_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);
-            }
-            fb.close();
-          }
-          public void onError(Exception e) {
-            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
-            org.apache.thrift.TBase msg;
-            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 
-            {
-              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());
-            }
-            try {
-              fcall.sendResponse(fb,msg,msgType,seqid);
-              return;
-            } catch (Exception ex) {
-              LOGGER.error("Exception writing to internal frame buffer", ex);
-            }
-            fb.close();
-          }
-        };
-      }
-
-      protected boolean isOneway() {
-        return false;
-      }
-
-      public void start(I iface, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws TException {
-        iface.getChildDataProducts(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 {
+        iface.getDataProduct(args.authzToken, args.dataProductUri,resultHandler);
       }
     }
 
-    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, Boolean> {
-      public shareResourceWithUsers() {
-        super("shareResourceWithUsers");
+    public static class registerReplicaLocation<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, registerReplicaLocation_args, String> {
+      public registerReplicaLocation() {
+        super("registerReplicaLocation");
       }
 
-      public shareResourceWithUsers_args getEmptyArgsInstance() {
-        return new shareResourceWithUsers_args();
+      public registerReplicaLocation_args getEmptyArgsInstance() {
+        return new registerReplicaLocation_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<String> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            shareResourceWithUsers_result result = new shareResourceWithUsers_result();
+        return new AsyncMethodCallback<String>() { 
+          public void onComplete(String o) {
+            registerReplicaLocation_result result = new registerReplicaLocation_result();
             result.success = o;
-            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -31639,7 +31823,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            shareResourceWithUsers_result result = new shareResourceWithUsers_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);
@@ -31680,27 +31864,26 @@ public class Airavata {
         return false;
       }
 
-      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, registerReplicaLocation_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
+        iface.registerReplicaLocation(args.authzToken, args.replicaLocationModel,resultHandler);
       }
     }
 
-    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, Boolean> {
-      public revokeSharingOfResourceFromUsers() {
-        super("revokeSharingOfResourceFromUsers");
+    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 revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
-        return new revokeSharingOfResourceFromUsers_args();
+      public getParentDataProduct_args getEmptyArgsInstance() {
+        return new getParentDataProduct_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<Boolean>() { 
-          public void onComplete(Boolean o) {
-            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
+        return new 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;
@@ -31712,7 +31895,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_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);
@@ -31753,25 +31936,25 @@ public class Airavata {
         return false;
       }
 
-      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, getParentDataProduct_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.model.data.replica.DataProductModel> resultHandler) throws TException {
+        iface.getParentDataProduct(args.authzToken, args.productUri,resultHandler);
       }
     }
 
-    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, List<String>> {
-      public getAllAccessibleUsers() {
-        super("getAllAccessibleUsers");
+    public static class getChildDataProducts<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getChildDataProducts_args, List<org.apache.airavata.model.data.replica.DataProductModel>> {
+      public getChildDataProducts() {
+        super("getChildDataProducts");
       }
 
-      public getAllAccessibleUsers_args getEmptyArgsInstance() {
-        return new getAllAccessibleUsers_args();
+      public getChildDataProducts_args getEmptyArgsInstance() {
+        return new getChildDataProducts_args();
       }
 
-      public AsyncMethodCallback<List<String>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<String>>() { 
-          public void onComplete(List<String> o) {
-            getAllAccessibleUsers_result result = new getAllAccessibleUsers_result();
+        return new AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>>() { 
+          public void onComplete(List<org.apache.airavata.model.data.replica.DataProductModel> o) {
+            getChildDataProducts_result result = new getChildDataProducts_result();
             result.success = o;
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
@@ -31784,7 +31967,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getAllAccessibleUsers_result result = new getAllAccessibleUsers_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);
@@ -31825,25 +32008,25 @@ public class Airavata {
         return false;
       }
 
-      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, getChildDataProducts_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.data.replica.DataProductModel>> resultHandler) throws TException {
+        iface.getChildDataProducts(args.authzToken, args.productUri,resultHandler);
       }
     }
 
-    public static class createGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroup_args, Boolean> {
-      public createGroup() {
-        super("createGroup");
+    public static class shareResourceWithUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, shareResourceWithUsers_args, Boolean> {
+      public shareResourceWithUsers() {
+        super("shareResourceWithUsers");
       }
 
-      public createGroup_args getEmptyArgsInstance() {
-        return new createGroup_args();
+      public shareResourceWithUsers_args getEmptyArgsInstance() {
+        return new shareResourceWithUsers_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            createGroup_result result = new createGroup_result();
+            shareResourceWithUsers_result result = new shareResourceWithUsers_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -31857,7 +32040,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            createGroup_result result = new createGroup_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);
@@ -31898,25 +32081,25 @@ public class Airavata {
         return false;
       }
 
-      public void start(I iface, createGroup_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.createGroup(args.authzToken, args.groupModel,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 static class updateGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, updateGroup_args, Boolean> {
-      public updateGroup() {
-        super("updateGroup");
+    public static class revokeSharingOfResourceFromUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, revokeSharingOfResourceFromUsers_args, Boolean> {
+      public revokeSharingOfResourceFromUsers() {
+        super("revokeSharingOfResourceFromUsers");
       }
 
-      public updateGroup_args getEmptyArgsInstance() {
-        return new updateGroup_args();
+      public revokeSharingOfResourceFromUsers_args getEmptyArgsInstance() {
+        return new revokeSharingOfResourceFromUsers_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final 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();
+            revokeSharingOfResourceFromUsers_result result = new revokeSharingOfResourceFromUsers_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -31930,7 +32113,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            updateGroup_result result = new updateGroup_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);
@@ -31971,27 +32154,26 @@ public class Airavata {
         return false;
       }
 
-      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, revokeSharingOfResourceFromUsers_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.revokeSharingOfResourceFromUsers(args.authzToken, args.resourceId, args.resourceType, args.userPermissionList,resultHandler);
       }
     }
 
-    public static class deleteGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, deleteGroup_args, Boolean> {
-      public deleteGroup() {
-        super("deleteGroup");
+    public static class getAllAccessibleUsers<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getAllAccessibleUsers_args, List<String>> {
+      public getAllAccessibleUsers() {
+        super("getAllAccessibleUsers");
       }
 
-      public deleteGroup_args getEmptyArgsInstance() {
-        return new deleteGroup_args();
+      public getAllAccessibleUsers_args getEmptyArgsInstance() {
+        return new getAllAccessibleUsers_args();
       }
 
-      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<String>> getResultHandler(final 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 AsyncMethodCallback<List<String>>() { 
+          public void onComplete(List<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;
@@ -32003,7 +32185,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            deleteGroup_result result = new deleteGroup_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);
@@ -32044,26 +32226,27 @@ public class Airavata {
         return false;
       }
 
-      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, args.gatewayId,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 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 createGroup<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, createGroup_args, Boolean> {
+      public createGroup() {
+        super("createGroup");
       }
 
-      public getGroup_args getEmptyArgsInstance() {
-        return new getGroup_args();
+      public createGroup_args getEmptyArgsInstance() {
+        return new createGroup_args();
       }
 
-      public AsyncMethodCallback<org.apache.airavata.model.group.GroupModel> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        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 AsyncMethodCallback<Boolean>() { 
+          public void onComplete(Boolean o) {
+            createGroup_result result = new createGroup_result();
             result.success = o;
+            result.setSuccessIsSet(true);
             try {
               fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
               return;
@@ -32075,7 +32258,7 @@ public class Airavata {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            getGroup_result result = new getGroup_result();
+            createGroup_result result = new createGroup_result();
             if (e instanceof org.apache.airavata.model.error.InvalidRequestException) {
                         result.ire = (org.apache.airavata.model.error.InvalidRequestException) e;
                         result.setIreIsSet(true);
@@ -3211

<TRUNCATED>

[27/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 34499ed,cac0f48..ed775e8
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@@ -46135,8772 -46214,3269 +46135,9024 @@@ uint32_t Airavata_isWorkflowExistWithNa
  }
  
  
++<<<<<<< HEAD
 +Airavata_registerDataProduct_args::~Airavata_registerDataProduct_args() throw() {
++=======
+ Airavata_isDataSharingEnabled_args::~Airavata_isDataSharingEnabled_args() throw() {
+ }
+ 
+ 
+ uint32_t Airavata_isDataSharingEnabled_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     xfer += iprot->skip(ftype);
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t Airavata_isDataSharingEnabled_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("Airavata_isDataSharingEnabled_args");
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ 
+ Airavata_isDataSharingEnabled_pargs::~Airavata_isDataSharingEnabled_pargs() throw() {
+ }
+ 
+ 
+ uint32_t Airavata_isDataSharingEnabled_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+   uint32_t xfer = 0;
+   apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+   xfer += oprot->writeStructBegin("Airavata_isDataSharingEnabled_pargs");
+ 
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ 
+ Airavata_isDataSharingEnabled_result::~Airavata_isDataSharingEnabled_result() throw() {
+ }
+ 
+ 
+ uint32_t Airavata_isDataSharingEnabled_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 0:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool(this->success);
+           this->__isset.success = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ire.read(iprot);
+           this->__isset.ire = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ace.read(iprot);
+           this->__isset.ace = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ase.read(iprot);
+           this->__isset.ase = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ae.read(iprot);
+           this->__isset.ae = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ uint32_t Airavata_isDataSharingEnabled_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ 
+   uint32_t xfer = 0;
+ 
+   xfer += oprot->writeStructBegin("Airavata_isDataSharingEnabled_result");
+ 
+   if (this->__isset.success) {
+     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+     xfer += oprot->writeBool(this->success);
+     xfer += oprot->writeFieldEnd();
+   } else if (this->__isset.ire) {
+     xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+     xfer += this->ire.write(oprot);
+     xfer += oprot->writeFieldEnd();
+   } else if (this->__isset.ace) {
+     xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+     xfer += this->ace.write(oprot);
+     xfer += oprot->writeFieldEnd();
+   } else if (this->__isset.ase) {
+     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
+     xfer += this->ase.write(oprot);
+     xfer += oprot->writeFieldEnd();
+   } else if (this->__isset.ae) {
+     xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+     xfer += this->ae.write(oprot);
+     xfer += oprot->writeFieldEnd();
+   }
+   xfer += oprot->writeFieldStop();
+   xfer += oprot->writeStructEnd();
+   return xfer;
+ }
+ 
+ 
+ Airavata_isDataSharingEnabled_presult::~Airavata_isDataSharingEnabled_presult() throw() {
+ }
+ 
+ 
+ uint32_t Airavata_isDataSharingEnabled_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+ 
+   apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+   uint32_t xfer = 0;
+   std::string fname;
+   ::apache::thrift::protocol::TType ftype;
+   int16_t fid;
+ 
+   xfer += iprot->readStructBegin(fname);
+ 
+   using ::apache::thrift::protocol::TProtocolException;
+ 
+ 
+   while (true)
+   {
+     xfer += iprot->readFieldBegin(fname, ftype, fid);
+     if (ftype == ::apache::thrift::protocol::T_STOP) {
+       break;
+     }
+     switch (fid)
+     {
+       case 0:
+         if (ftype == ::apache::thrift::protocol::T_BOOL) {
+           xfer += iprot->readBool((*(this->success)));
+           this->__isset.success = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 1:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ire.read(iprot);
+           this->__isset.ire = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 2:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ace.read(iprot);
+           this->__isset.ace = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 3:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ase.read(iprot);
+           this->__isset.ase = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       case 4:
+         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+           xfer += this->ae.read(iprot);
+           this->__isset.ae = true;
+         } else {
+           xfer += iprot->skip(ftype);
+         }
+         break;
+       default:
+         xfer += iprot->skip(ftype);
+         break;
+     }
+     xfer += iprot->readFieldEnd();
+   }
+ 
+   xfer += iprot->readStructEnd();
+ 
+   return xfer;
+ }
+ 
+ void AiravataClient::getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
+ {
+   send_getAPIVersion(authzToken);
+   recv_getAPIVersion(_return);
++>>>>>>> upstream/develop
  }
  
 -void AiravataClient::send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
 -
 -  Airavata_getAPIVersion_pargs args;
 -  args.authzToken = &authzToken;
 -  args.write(oprot_);
 -
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
  
 -void AiravataClient::recv_getAPIVersion(std::string& _return)
 -{
 +uint32_t Airavata_registerDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  int32_t rseqid = 0;
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAPIVersion") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getAPIVersion_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
 -}
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -bool AiravataClient::isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
 -{
 -  send_isUserExists(authzToken, gatewayId, userName);
 -  return recv_isUserExists();
 -}
 +  bool isset_authzToken = false;
 +  bool isset_dataProductModel = false;
  
 -void AiravataClient::send_isUserExists(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("isUserExists", ::apache::thrift::protocol::T_CALL, cseqid);
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->authzToken.read(iprot);
 +          isset_authzToken = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->dataProductModel.read(iprot);
 +          isset_dataProductModel = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
 +  }
  
 -  Airavata_isUserExists_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.userName = &userName;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  if (!isset_authzToken)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  if (!isset_dataProductModel)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  return xfer;
  }
  
 -bool AiravataClient::recv_isUserExists()
 -{
 +uint32_t Airavata_registerDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_args");
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += this->authzToken.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("isUserExists") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_isUserExists_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeFieldBegin("dataProductModel", ::apache::thrift::protocol::T_STRUCT, 2);
 +  xfer += this->dataProductModel.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isUserExists failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -void AiravataClient::addGateway(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
 -{
 -  send_addGateway(authzToken, gateway);
 -  recv_addGateway(_return);
 +
 +Airavata_registerDataProduct_pargs::~Airavata_registerDataProduct_pargs() throw() {
  }
  
 -void AiravataClient::send_addGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Gateway& gateway)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("addGateway", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_addGateway_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gateway = &gateway;
 -  args.write(oprot_);
 +uint32_t Airavata_registerDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_pargs");
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += (*(this->authzToken)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -void AiravataClient::recv_addGateway(std::string& _return)
 -{
 +  xfer += oprot->writeFieldBegin("dataProductModel", ::apache::thrift::protocol::T_STRUCT, 2);
 +  xfer += (*(this->dataProductModel)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
 +}
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("addGateway") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_addGateway_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "addGateway failed: unknown result");
 +Airavata_registerDataProduct_result::~Airavata_registerDataProduct_result() throw() {
  }
  
 -void AiravataClient::getAllUsersInGateway(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_getAllUsersInGateway(authzToken, gatewayId);
 -  recv_getAllUsersInGateway(_return);
 -}
  
 -void AiravataClient::send_getAllUsersInGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAllUsersInGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 +uint32_t Airavata_registerDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  Airavata_getAllUsersInGateway_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
 +  std::string fname;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += iprot->readStructBegin(fname);
  
 -void AiravataClient::recv_getAllUsersInGateway(std::vector<std::string> & _return)
 -{
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAllUsersInGateway") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString(this->success);
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  Airavata_getAllUsersInGateway_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllUsersInGateway failed: unknown result");
 -}
 +  xfer += iprot->readStructEnd();
  
 -bool AiravataClient::updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
 -{
 -  send_updateGateway(authzToken, gatewayId, updatedGateway);
 -  return recv_updateGateway();
 +  return xfer;
  }
  
 -void AiravataClient::send_updateGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("updateGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 +uint32_t Airavata_registerDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
  
 -  Airavata_updateGateway_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.updatedGateway = &updatedGateway;
 -  args.write(oprot_);
 -
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 -
 -bool AiravataClient::recv_updateGateway()
 -{
 -
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  uint32_t xfer = 0;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("updateGateway") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_updateGateway_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeStructBegin("Airavata_registerDataProduct_result");
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 +  if (this->__isset.success) {
 +    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
 +    xfer += oprot->writeString(this->success);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ire) {
 +    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
 +    xfer += this->ire.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ace) {
 +    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
 +    xfer += this->ace.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ase) {
 +    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
 +    xfer += this->ase.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ae) {
 +    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
 +    xfer += this->ae.write(oprot);
 +    xfer += oprot->writeFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGateway failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -void AiravataClient::getGateway( ::apache::airavata::model::workspace::Gateway& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_getGateway(authzToken, gatewayId);
 -  recv_getGateway(_return);
 +
 +Airavata_registerDataProduct_presult::~Airavata_registerDataProduct_presult() throw() {
  }
  
 -void AiravataClient::send_getGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getGateway", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_getGateway_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +uint32_t Airavata_registerDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
 +  std::string fname;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -void AiravataClient::recv_getGateway( ::apache::airavata::model::workspace::Gateway& _return)
 -{
 +  xfer += iprot->readStructBegin(fname);
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getGateway") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getGateway_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString((*(this->success)));
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGateway failed: unknown result");
 -}
  
 -bool AiravataClient::deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_deleteGateway(authzToken, gatewayId);
 -  return recv_deleteGateway();
 -}
 +  xfer += iprot->readStructEnd();
  
 -void AiravataClient::send_deleteGateway(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("deleteGateway", ::apache::thrift::protocol::T_CALL, cseqid);
 +  return xfer;
 +}
  
 -  Airavata_deleteGateway_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +Airavata_getDataProduct_args::~Airavata_getDataProduct_args() throw() {
  }
  
 -bool AiravataClient::recv_deleteGateway()
 -{
  
 -  int32_t rseqid = 0;
 +uint32_t Airavata_getDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 +
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("deleteGateway") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_deleteGateway_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGateway failed: unknown result");
 -}
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -void AiravataClient::getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 -{
 -  send_getAllGateways(authzToken);
 -  recv_getAllGateways(_return);
 -}
 +  bool isset_authzToken = false;
 +  bool isset_dataProductUri = false;
  
 -void AiravataClient::send_getAllGateways(const  ::apache::airavata::model::security::AuthzToken& authzToken)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAllGateways", ::apache::thrift::protocol::T_CALL, cseqid);
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->authzToken.read(iprot);
 +          isset_authzToken = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString(this->dataProductUri);
 +          isset_dataProductUri = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
 +  }
  
 -  Airavata_getAllGateways_pargs args;
 -  args.authzToken = &authzToken;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  if (!isset_authzToken)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  if (!isset_dataProductUri)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  return xfer;
  }
  
 -void AiravataClient::recv_getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return)
 -{
 +uint32_t Airavata_getDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_getDataProduct_args");
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += this->authzToken.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAllGateways") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getAllGateways_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeFieldBegin("dataProductUri", ::apache::thrift::protocol::T_STRING, 2);
 +  xfer += oprot->writeString(this->dataProductUri);
 +  xfer += oprot->writeFieldEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGateways failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -bool AiravataClient::isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_isGatewayExist(authzToken, gatewayId);
 -  return recv_isGatewayExist();
 +
 +Airavata_getDataProduct_pargs::~Airavata_getDataProduct_pargs() throw() {
  }
  
 -void AiravataClient::send_isGatewayExist(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("isGatewayExist", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_isGatewayExist_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +uint32_t Airavata_getDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_getDataProduct_pargs");
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += (*(this->authzToken)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -bool AiravataClient::recv_isGatewayExist()
 -{
 +  xfer += oprot->writeFieldBegin("dataProductUri", ::apache::thrift::protocol::T_STRING, 2);
 +  xfer += oprot->writeString((*(this->dataProductUri)));
 +  xfer += oprot->writeFieldEnd();
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
 +}
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("isGatewayExist") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_isGatewayExist_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isGatewayExist failed: unknown result");
 +Airavata_getDataProduct_result::~Airavata_getDataProduct_result() throw() {
  }
  
 -void AiravataClient::createNotification(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 -{
 -  send_createNotification(authzToken, notification);
 -  recv_createNotification(_return);
 -}
  
 -void AiravataClient::send_createNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("createNotification", ::apache::thrift::protocol::T_CALL, cseqid);
 +uint32_t Airavata_getDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  Airavata_createNotification_pargs args;
 -  args.authzToken = &authzToken;
 -  args.notification = &notification;
 -  args.write(oprot_);
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
 +  std::string fname;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += iprot->readStructBegin(fname);
  
 -void AiravataClient::recv_createNotification(std::string& _return)
 -{
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("createNotification") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_createNotification_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 -
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->success.read(iprot);
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "createNotification failed: unknown result");
 -}
 -
 -bool AiravataClient::updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 -{
 -  send_updateNotification(authzToken, notification);
 -  return recv_updateNotification();
 -}
 -
 -void AiravataClient::send_updateNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::workspace::Notification& notification)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("updateNotification", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_updateNotification_pargs args;
 -  args.authzToken = &authzToken;
 -  args.notification = &notification;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  return xfer;
  }
  
 -bool AiravataClient::recv_updateNotification()
 -{
 +uint32_t Airavata_getDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  uint32_t xfer = 0;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("updateNotification") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_updateNotification_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeStructBegin("Airavata_getDataProduct_result");
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 +  if (this->__isset.success) {
 +    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
 +    xfer += this->success.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ire) {
 +    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
 +    xfer += this->ire.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ace) {
 +    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
 +    xfer += this->ace.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ase) {
 +    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
 +    xfer += this->ase.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ae) {
 +    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
 +    xfer += this->ae.write(oprot);
 +    xfer += oprot->writeFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateNotification failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -bool AiravataClient::deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId)
 -{
 -  send_deleteNotification(authzToken, gatewayId, notificationId);
 -  return recv_deleteNotification();
 +
 +Airavata_getDataProduct_presult::~Airavata_getDataProduct_presult() throw() {
  }
  
 -void AiravataClient::send_deleteNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("deleteNotification", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_deleteNotification_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.notificationId = &notificationId;
 -  args.write(oprot_);
 +uint32_t Airavata_getDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
 +  std::string fname;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -bool AiravataClient::recv_deleteNotification()
 -{
 +  xfer += iprot->readStructBegin(fname);
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("deleteNotification") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_deleteNotification_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += (*(this->success)).read(iprot);
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteNotification failed: unknown result");
 -}
  
 -void AiravataClient::getNotification( ::apache::airavata::model::workspace::Notification& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId)
 -{
 -  send_getNotification(authzToken, gatewayId, notificationId);
 -  recv_getNotification(_return);
 -}
 +  xfer += iprot->readStructEnd();
  
 -void AiravataClient::send_getNotification(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& notificationId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getNotification", ::apache::thrift::protocol::T_CALL, cseqid);
 +  return xfer;
 +}
  
 -  Airavata_getNotification_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.notificationId = &notificationId;
 -  args.write(oprot_);
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +Airavata_registerReplicaLocation_args::~Airavata_registerReplicaLocation_args() throw() {
  }
  
 -void AiravataClient::recv_getNotification( ::apache::airavata::model::workspace::Notification& _return)
 -{
  
 -  int32_t rseqid = 0;
 +uint32_t Airavata_registerReplicaLocation_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 +
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getNotification") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getNotification_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getNotification failed: unknown result");
 -}
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -void AiravataClient::getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_getAllNotifications(authzToken, gatewayId);
 -  recv_getAllNotifications(_return);
 -}
 +  bool isset_authzToken = false;
 +  bool isset_replicaLocationModel = false;
  
 -void AiravataClient::send_getAllNotifications(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAllNotifications", ::apache::thrift::protocol::T_CALL, cseqid);
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->authzToken.read(iprot);
 +          isset_authzToken = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->replicaLocationModel.read(iprot);
 +          isset_replicaLocationModel = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
 +  }
  
 -  Airavata_getAllNotifications_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  if (!isset_authzToken)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  if (!isset_replicaLocationModel)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  return xfer;
  }
  
 -void AiravataClient::recv_getAllNotifications(std::vector< ::apache::airavata::model::workspace::Notification> & _return)
 -{
 +uint32_t Airavata_registerReplicaLocation_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_args");
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += this->authzToken.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAllNotifications") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getAllNotifications_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeFieldBegin("replicaLocationModel", ::apache::thrift::protocol::T_STRUCT, 2);
 +  xfer += this->replicaLocationModel.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  if (result.__isset.ae) {
 -    throw result.ae;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllNotifications failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -void AiravataClient::generateAndRegisterSSHKeys(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
 -{
 -  send_generateAndRegisterSSHKeys(authzToken, gatewayId, userName);
 -  recv_generateAndRegisterSSHKeys(_return);
 +
 +Airavata_registerReplicaLocation_pargs::~Airavata_registerReplicaLocation_pargs() throw() {
  }
  
 -void AiravataClient::send_generateAndRegisterSSHKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("generateAndRegisterSSHKeys", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_generateAndRegisterSSHKeys_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.userName = &userName;
 -  args.write(oprot_);
 +uint32_t Airavata_registerReplicaLocation_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_pargs");
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += (*(this->authzToken)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -void AiravataClient::recv_generateAndRegisterSSHKeys(std::string& _return)
 -{
 +  xfer += oprot->writeFieldBegin("replicaLocationModel", ::apache::thrift::protocol::T_STRUCT, 2);
 +  xfer += (*(this->replicaLocationModel)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
 +}
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("generateAndRegisterSSHKeys") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_generateAndRegisterSSHKeys_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "generateAndRegisterSSHKeys failed: unknown result");
 +Airavata_registerReplicaLocation_result::~Airavata_registerReplicaLocation_result() throw() {
  }
  
 -void AiravataClient::registerPwdCredential(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description)
 -{
 -  send_registerPwdCredential(authzToken, gatewayId, portalUserName, loginUserName, password, description);
 -  recv_registerPwdCredential(_return);
 -}
  
 -void AiravataClient::send_registerPwdCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& portalUserName, const std::string& loginUserName, const std::string& password, const std::string& description)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("registerPwdCredential", ::apache::thrift::protocol::T_CALL, cseqid);
 +uint32_t Airavata_registerReplicaLocation_result::read(::apache::thrift::protocol::TProtocol* iprot) {
  
 -  Airavata_registerPwdCredential_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.portalUserName = &portalUserName;
 -  args.loginUserName = &loginUserName;
 -  args.password = &password;
 -  args.description = &description;
 -  args.write(oprot_);
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
 +  std::string fname;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 -}
 +  xfer += iprot->readStructBegin(fname);
  
 -void AiravataClient::recv_registerPwdCredential(std::string& _return)
 -{
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("registerPwdCredential") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString(this->success);
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  Airavata_registerPwdCredential_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerPwdCredential failed: unknown result");
 -}
 +  xfer += iprot->readStructEnd();
  
 -void AiravataClient::getSSHPubKey(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  send_getSSHPubKey(authzToken, airavataCredStoreToken, gatewayId);
 -  recv_getSSHPubKey(_return);
 +  return xfer;
  }
  
 -void AiravataClient::send_getSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getSSHPubKey", ::apache::thrift::protocol::T_CALL, cseqid);
 +uint32_t Airavata_registerReplicaLocation_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
  
 -  Airavata_getSSHPubKey_pargs args;
 -  args.authzToken = &authzToken;
 -  args.airavataCredStoreToken = &airavataCredStoreToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +  uint32_t xfer = 0;
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  xfer += oprot->writeStructBegin("Airavata_registerReplicaLocation_result");
 +
 +  if (this->__isset.success) {
 +    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRING, 0);
 +    xfer += oprot->writeString(this->success);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ire) {
 +    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
 +    xfer += this->ire.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ace) {
 +    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
 +    xfer += this->ace.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ase) {
 +    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
 +    xfer += this->ase.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ae) {
 +    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
 +    xfer += this->ae.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  }
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -void AiravataClient::recv_getSSHPubKey(std::string& _return)
 -{
  
 -  int32_t rseqid = 0;
 +Airavata_registerReplicaLocation_presult::~Airavata_registerReplicaLocation_presult() throw() {
 +}
 +
 +
 +uint32_t Airavata_registerReplicaLocation_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 +
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getSSHPubKey") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getSSHPubKey_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 +  using ::apache::thrift::protocol::TProtocolException;
 +
 +
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString((*(this->success)));
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getSSHPubKey failed: unknown result");
 -}
  
 -void AiravataClient::getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_getAllGatewaySSHPubKeys(authzToken, gatewayId);
 -  recv_getAllGatewaySSHPubKeys(_return);
 -}
 +  xfer += iprot->readStructEnd();
  
 -void AiravataClient::send_getAllGatewaySSHPubKeys(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAllGatewaySSHPubKeys", ::apache::thrift::protocol::T_CALL, cseqid);
 +  return xfer;
 +}
  
 -  Airavata_getAllGatewaySSHPubKeys_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +Airavata_getParentDataProduct_args::~Airavata_getParentDataProduct_args() throw() {
  }
  
 -void AiravataClient::recv_getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return)
 -{
  
 -  int32_t rseqid = 0;
 +uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 +
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAllGatewaySSHPubKeys") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getAllGatewaySSHPubKeys_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewaySSHPubKeys failed: unknown result");
 -}
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -void AiravataClient::getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  send_getAllGatewayPWDCredentials(authzToken, gatewayId);
 -  recv_getAllGatewayPWDCredentials(_return);
 -}
 +  bool isset_authzToken = false;
 +  bool isset_productUri = false;
  
 -void AiravataClient::send_getAllGatewayPWDCredentials(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("getAllGatewayPWDCredentials", ::apache::thrift::protocol::T_CALL, cseqid);
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->authzToken.read(iprot);
 +          isset_authzToken = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRING) {
 +          xfer += iprot->readString(this->productUri);
 +          isset_productUri = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
 +  }
  
 -  Airavata_getAllGatewayPWDCredentials_pargs args;
 -  args.authzToken = &authzToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  if (!isset_authzToken)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  if (!isset_productUri)
 +    throw TProtocolException(TProtocolException::INVALID_DATA);
 +  return xfer;
  }
  
 -void AiravataClient::recv_getAllGatewayPWDCredentials(std::map<std::string, std::string> & _return)
 -{
 +uint32_t Airavata_getParentDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_args");
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += this->authzToken.write(oprot);
 +  xfer += oprot->writeFieldEnd();
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("getAllGatewayPWDCredentials") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  Airavata_getAllGatewayPWDCredentials_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
 +  xfer += oprot->writeString(this->productUri);
 +  xfer += oprot->writeFieldEnd();
  
 -  if (result.__isset.success) {
 -    // _return pointer has now been filled
 -    return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayPWDCredentials failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -bool AiravataClient::deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  send_deleteSSHPubKey(authzToken, airavataCredStoreToken, gatewayId);
 -  return recv_deleteSSHPubKey();
 +
 +Airavata_getParentDataProduct_pargs::~Airavata_getParentDataProduct_pargs() throw() {
  }
  
 -void AiravataClient::send_deleteSSHPubKey(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("deleteSSHPubKey", ::apache::thrift::protocol::T_CALL, cseqid);
  
 -  Airavata_deleteSSHPubKey_pargs args;
 -  args.authzToken = &authzToken;
 -  args.airavataCredStoreToken = &airavataCredStoreToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +uint32_t Airavata_getParentDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
 +  uint32_t xfer = 0;
 +  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
 +  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_pargs");
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
 +  xfer += (*(this->authzToken)).write(oprot);
 +  xfer += oprot->writeFieldEnd();
 +
 +  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
 +  xfer += oprot->writeString((*(this->productUri)));
 +  xfer += oprot->writeFieldEnd();
 +
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -bool AiravataClient::recv_deleteSSHPubKey()
 -{
  
 -  int32_t rseqid = 0;
 +Airavata_getParentDataProduct_result::~Airavata_getParentDataProduct_result() throw() {
 +}
 +
 +
 +uint32_t Airavata_getParentDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 +
 +  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
 +  uint32_t xfer = 0;
    std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  ::apache::thrift::protocol::TType ftype;
 +  int16_t fid;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("deleteSSHPubKey") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_deleteSSHPubKey_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += iprot->readStructBegin(fname);
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 -  }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteSSHPubKey failed: unknown result");
 -}
 +  using ::apache::thrift::protocol::TProtocolException;
  
 -bool AiravataClient::deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  send_deletePWDCredential(authzToken, airavataCredStoreToken, gatewayId);
 -  return recv_deletePWDCredential();
 -}
  
 -void AiravataClient::send_deletePWDCredential(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId)
 -{
 -  int32_t cseqid = 0;
 -  oprot_->writeMessageBegin("deletePWDCredential", ::apache::thrift::protocol::T_CALL, cseqid);
 +  while (true)
 +  {
 +    xfer += iprot->readFieldBegin(fname, ftype, fid);
 +    if (ftype == ::apache::thrift::protocol::T_STOP) {
 +      break;
 +    }
 +    switch (fid)
 +    {
 +      case 0:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->success.read(iprot);
 +          this->__isset.success = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 1:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ire.read(iprot);
 +          this->__isset.ire = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 2:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ace.read(iprot);
 +          this->__isset.ace = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 3:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ase.read(iprot);
 +          this->__isset.ase = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      case 4:
 +        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
 +          xfer += this->ae.read(iprot);
 +          this->__isset.ae = true;
 +        } else {
 +          xfer += iprot->skip(ftype);
 +        }
 +        break;
 +      default:
 +        xfer += iprot->skip(ftype);
 +        break;
 +    }
 +    xfer += iprot->readFieldEnd();
 +  }
  
 -  Airavata_deletePWDCredential_pargs args;
 -  args.authzToken = &authzToken;
 -  args.airavataCredStoreToken = &airavataCredStoreToken;
 -  args.gatewayId = &gatewayId;
 -  args.write(oprot_);
 +  xfer += iprot->readStructEnd();
  
 -  oprot_->writeMessageEnd();
 -  oprot_->getTransport()->writeEnd();
 -  oprot_->getTransport()->flush();
 +  return xfer;
  }
  
 -bool AiravataClient::recv_deletePWDCredential()
 -{
 +uint32_t Airavata_getParentDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
  
 -  int32_t rseqid = 0;
 -  std::string fname;
 -  ::apache::thrift::protocol::TMessageType mtype;
 +  uint32_t xfer = 0;
  
 -  iprot_->readMessageBegin(fname, mtype, rseqid);
 -  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
 -    ::apache::thrift::TApplicationException x;
 -    x.read(iprot_);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -    throw x;
 -  }
 -  if (mtype != ::apache::thrift::protocol::T_REPLY) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  if (fname.compare("deletePWDCredential") != 0) {
 -    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
 -    iprot_->readMessageEnd();
 -    iprot_->getTransport()->readEnd();
 -  }
 -  bool _return;
 -  Airavata_deletePWDCredential_presult result;
 -  result.success = &_return;
 -  result.read(iprot_);
 -  iprot_->readMessageEnd();
 -  iprot_->getTransport()->readEnd();
 +  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_result");
  
 -  if (result.__isset.success) {
 -    return _return;
 -  }
 -  if (result.__isset.ire) {
 -    throw result.ire;
 -  }
 -  if (result.__isset.ace) {
 -    throw result.ace;
 -  }
 -  if (result.__isset.ase) {
 -    throw result.ase;
 +  if (this->__isset.success) {
 +    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
 +    xfer += this->success.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ire) {
 +    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
 +    xfer += this->ire.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ace) {
 +    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
 +    xfer += this->ace.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ase) {
 +    xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
 +    xfer += this->ase.write(oprot);
 +    xfer += oprot->writeFieldEnd();
 +  } else if (this->__isset.ae) {
 +    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
 +    xfer += this->ae.write(oprot);
 +    xfer += oprot->writeFieldEnd();
    }
 -  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deletePWDCredential failed: unknown result");
 +  xfer += oprot->writeFieldStop();
 +  xfer += oprot->writeStructEnd();
 +  return xfer;
  }
  
 -void Aira

<TRUNCATED>
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------


[29/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
updating local to upstream develop


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

Branch: refs/heads/develop
Commit: fa5a1e0fc6fe2140f822525e313bc57566024294
Parents: 8469eff 9f0445f
Author: Anuj Bhandar <bh...@gmail.com>
Authored: Fri Oct 7 12:36:40 2016 -0400
Committer: Anuj Bhandar <bh...@gmail.com>
Committed: Fri Oct 7 12:36:40 2016 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    11 +
 .../java/org/apache/airavata/api/Airavata.java  | 47254 +++++++++--------
 .../main/resources/lib/airavata/Airavata.cpp    |   506 +
 .../src/main/resources/lib/airavata/Airavata.h  |   146 +
 .../lib/airavata/Airavata_server.skeleton.cpp   |     5 +
 .../resources/lib/Airavata/API/Airavata.php     |   301 +
 .../resources/lib/Airavata/Model/job/Types.php  |    22 +-
 .../lib/apache/airavata/api/Airavata-remote     |     7 +
 .../lib/apache/airavata/api/Airavata.py         |   395 +
 .../apache/airavata/model/ComponentStatus.java  |     2 +-
 .../org/apache/airavata/model/EdgeModel.java    |     2 +-
 .../org/apache/airavata/model/NodeModel.java    |     2 +-
 .../org/apache/airavata/model/PortModel.java    |     2 +-
 .../apache/airavata/model/WorkflowModel.java    |     2 +-
 .../apache/airavata/model/WorkflowStatus.java   |     2 +-
 .../ApplicationDeploymentDescription.java       |     2 +-
 .../appdeployment/ApplicationModule.java        |     2 +-
 .../appcatalog/appdeployment/CommandObject.java |     2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |     2 +-
 .../ApplicationInterfaceDescription.java        |     2 +-
 .../appcatalog/computeresource/BatchQueue.java  |     2 +-
 .../computeresource/CloudJobSubmission.java     |     2 +-
 .../ComputeResourceDescription.java             |     2 +-
 .../computeresource/GlobusJobSubmission.java    |     2 +-
 .../computeresource/JobSubmissionInterface.java |     2 +-
 .../computeresource/LOCALSubmission.java        |     2 +-
 .../computeresource/ResourceJobManager.java     |     2 +-
 .../computeresource/SSHJobSubmission.java       |     2 +-
 .../computeresource/UnicoreJobSubmission.java   |     2 +-
 .../ComputeResourcePreference.java              |     2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |     2 +-
 .../gatewayprofile/StoragePreference.java       |     2 +-
 .../StorageResourceDescription.java             |     2 +-
 .../UserComputeResourcePreference.java          |     2 +-
 .../UserResourceProfile.java                    |     2 +-
 .../UserStoragePreference.java                  |     2 +-
 .../application/io/InputDataObjectType.java     |     2 +-
 .../application/io/OutputDataObjectType.java    |     2 +-
 .../airavata/model/commons/ErrorModel.java      |     2 +-
 .../model/commons/ValidationResults.java        |     2 +-
 .../airavata/model/commons/ValidatorResult.java |     2 +-
 .../data/movement/DataMovementInterface.java    |     2 +-
 .../data/movement/GridFTPDataMovement.java      |     2 +-
 .../model/data/movement/LOCALDataMovement.java  |     2 +-
 .../model/data/movement/SCPDataMovement.java    |     2 +-
 .../data/movement/UnicoreDataMovement.java      |     2 +-
 .../model/data/replica/DataProductModel.java    |     2 +-
 .../data/replica/DataReplicaLocationModel.java  |     2 +-
 .../model/error/AiravataClientException.java    |     2 +-
 .../model/error/AiravataSystemException.java    |     2 +-
 .../model/error/AuthenticationException.java    |     2 +-
 .../model/error/AuthorizationException.java     |     2 +-
 .../error/ExperimentNotFoundException.java      |     2 +-
 .../model/error/InvalidRequestException.java    |     2 +-
 .../model/error/LaunchValidationException.java  |     2 +-
 .../model/error/ProjectNotFoundException.java   |     2 +-
 .../airavata/model/error/TimedOutException.java |     2 +-
 .../airavata/model/error/ValidationResults.java |     2 +-
 .../airavata/model/error/ValidatorResult.java   |     2 +-
 .../model/experiment/ExperimentModel.java       |     2 +-
 .../model/experiment/ExperimentStatistics.java  |     2 +-
 .../experiment/ExperimentSummaryModel.java      |     2 +-
 .../experiment/UserConfigurationDataModel.java  |     2 +-
 .../apache/airavata/model/group/GroupModel.java |     2 +-
 .../org/apache/airavata/model/job/JobModel.java |     2 +-
 .../event/ExperimentStatusChangeEvent.java      |     2 +-
 .../messaging/event/ExperimentSubmitEvent.java  |     2 +-
 .../model/messaging/event/JobIdentifier.java    |     2 +-
 .../messaging/event/JobStatusChangeEvent.java   |     2 +-
 .../event/JobStatusChangeRequestEvent.java      |     2 +-
 .../airavata/model/messaging/event/Message.java |     2 +-
 .../messaging/event/ProcessIdentifier.java      |     2 +-
 .../event/ProcessStatusChangeEvent.java         |     2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |     2 +-
 .../messaging/event/ProcessSubmitEvent.java     |     2 +-
 .../messaging/event/ProcessTerminateEvent.java  |     2 +-
 .../model/messaging/event/TaskIdentifier.java   |     2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |     2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |     2 +-
 .../event/TaskStatusChangeRequestEvent.java     |     2 +-
 .../airavata/model/process/ProcessModel.java    |     2 +-
 .../ComputationalResourceSchedulingModel.java   |     2 +-
 .../airavata/model/security/AuthzToken.java     |     2 +-
 .../airavata/model/status/ExperimentStatus.java |     2 +-
 .../apache/airavata/model/status/JobStatus.java |     2 +-
 .../airavata/model/status/ProcessStatus.java    |     2 +-
 .../airavata/model/status/TaskStatus.java       |     2 +-
 .../model/task/DataStagingTaskModel.java        |     2 +-
 .../model/task/EnvironmentSetupTaskModel.java   |     2 +-
 .../model/task/JobSubmissionTaskModel.java      |     2 +-
 .../airavata/model/task/MonitorTaskModel.java   |     2 +-
 .../apache/airavata/model/task/TaskModel.java   |     2 +-
 .../airavata/model/user/NSFDemographics.java    |     2 +-
 .../apache/airavata/model/user/UserProfile.java |     2 +-
 .../airavata/model/workspace/Gateway.java       |     2 +-
 .../apache/airavata/model/workspace/Group.java  |     2 +-
 .../airavata/model/workspace/Notification.java  |     2 +-
 .../airavata/model/workspace/Project.java       |     2 +-
 .../apache/airavata/model/workspace/User.java   |     2 +-
 modules/commons/pom.xml                         |    10 -
 .../airavata/common/utils/AiravataUtils.java    |     2 +-
 .../apache/airavata/common/utils/XMLUtil.java   |   586 -
 .../airavata/common/utils/XmlFormatter.java     |    82 -
 .../airavata/common/utils/XMLUtilTest.java      |    56 -
 .../src/main/resources/FORK_Groovy.template     |    13 +
 .../server/src/main/resources/ForkTemplate.xslt |    24 -
 .../server/src/main/resources/LSFTemplate.xslt  |    92 -
 .../src/main/resources/LSF_Groovy.template      |    27 +
 .../server/src/main/resources/PBSTemplate.xslt  |   107 -
 .../src/main/resources/PBS_Groovy.template      |    31 +
 .../src/main/resources/SLURMTemplate.xslt       |   102 -
 .../src/main/resources/SLURM_Groovy.template    |    28 +
 .../server/src/main/resources/UGETemplate.xslt  |    78 -
 .../src/main/resources/UGE_Groovy.template      |    28 +
 .../server/src/main/resources/logback.xml       |    31 +
 modules/distribution/pom.xml                    |    56 +-
 .../src/main/assembly/bin-assembly.xml          |    15 +-
 modules/gfac/gfac-core/pom.xml                  |    33 +-
 .../apache/airavata/gfac/core/GFacUtils.java    |   171 +-
 .../apache/airavata/gfac/core/GroovyMap.java    |    94 +
 .../airavata/gfac/core/JobDescriptor.java       |   489 -
 .../org/apache/airavata/gfac/core/Script.java   |    75 +
 .../gfac/core/cluster/OutputParser.java         |     8 -
 .../gfac/core/x2012/x12/AfterAnyList.java       |   185 -
 .../gfac/core/x2012/x12/AfterOKList.java        |   185 -
 .../gfac/core/x2012/x12/ExportProperties.java   |   202 -
 .../airavata/gfac/core/x2012/x12/InputList.java |   185 -
 .../core/x2012/x12/JobDescriptorDocument.java   |   131 -
 .../gfac/core/x2012/x12/ModuleLoadCommands.java |   185 -
 .../airavata/gfac/core/x2012/x12/PbsParams.java |  1500 -
 .../gfac/core/x2012/x12/PostJobCommands.java    |   185 -
 .../gfac/core/x2012/x12/PreJobCommands.java     |   185 -
 .../core/x2012/x12/impl/AfterAnyListImpl.java   |   254 -
 .../core/x2012/x12/impl/AfterOKListImpl.java    |   254 -
 .../x2012/x12/impl/ExportPropertiesImpl.java    |   252 -
 .../gfac/core/x2012/x12/impl/InputListImpl.java |   254 -
 .../x12/impl/JobDescriptorDocumentImpl.java     |    96 -
 .../x2012/x12/impl/ModuleLoadCommandsImpl.java  |   254 -
 .../gfac/core/x2012/x12/impl/PbsParamsImpl.java |  4381 --
 .../x2012/x12/impl/PostJobCommandsImpl.java     |   254 -
 .../core/x2012/x12/impl/PreJobCommandsImpl.java |   254 -
 .../src/main/resources/PBSJobDescriptor.xsd     |   116 -
 .../src/main/resources/gsissh-schemas.xsdconfig |    14 -
 .../org/apache/airavata/gfac/impl/Factory.java  |    11 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      |     5 +
 .../gfac/impl/job/ForkOutputParser.java         |     5 -
 .../airavata/gfac/impl/job/LSFOutputParser.java |    10 +-
 .../airavata/gfac/impl/job/PBSOutputParser.java |    90 +-
 .../gfac/impl/job/SlurmOutputParser.java        |    61 +-
 .../airavata/gfac/impl/job/UGEOutputParser.java |    89 +-
 .../impl/task/DefaultJobSubmissionTask.java     |     8 +-
 .../gfac/impl/task/ForkJobSubmissionTask.java   |     6 +-
 .../catalog/impl/ExperimentRegistry.java        |     8 +
 .../src/main/resources/credstore-mysql.sql      |    10 +-
 .../org/apache/airavata/server/ServerMain.java  |     1 +
 .../engine/interpretor/WorkflowInterpreter.java |     1 -
 .../invoker/MsgBoxWsaResponsesCorrelator.java   |     2 +-
 .../component/ws/WSComponentApplication.java    |     1 -
 .../workflow/model/gpel/script/BPELScript.java  |     2 -
 .../model/gpel/script/WorkflowWSDL.java         |     1 -
 .../airavata/workflow/model/wf/Workflow.java    |     1 -
 modules/workflow/workflow-core/pom.xml          |    11 +-
 .../apache/airavata/workflow/core/XMLUtil.java  |   587 +
 .../airavata/workflow/core/XmlFormatter.java    |    82 +
 .../airavata/workflow/core/XMLUtilTest.java     |    56 +
 pom.xml                                         |     2 +
 .../airavata-apis/airavata_api.thrift           |     5 +
 167 files changed, 26946 insertions(+), 34500 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------


[22/31] airavata git commit: updating local to upstream develop

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
index c557385,c557385..c4d2d65
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataProductModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class DataProductModel implements org.apache.thrift.TBase<DataProductModel, DataProductModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataProductModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataProductModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
index 6442791,6442791..47c6d3a
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/data/replica/DataReplicaLocationModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class DataReplicaLocationModel implements org.apache.thrift.TBase<DataReplicaLocationModel, DataReplicaLocationModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataReplicaLocationModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataReplicaLocationModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
index dfc6630,dfc6630..e51345b
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataClientException.java
@@@ -66,7 -66,7 +66,7 @@@ import org.slf4j.LoggerFactory
   * parameter:  If the error applied to a particular input parameter, this will
   *   indicate which parameter.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class AiravataClientException extends TException implements org.apache.thrift.TBase<AiravataClientException, AiravataClientException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataClientException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataClientException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
index feb658c,feb658c..e517a31
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AiravataSystemException.java
@@@ -61,7 -61,7 +61,7 @@@ import org.slf4j.LoggerFactory
   * message:  This may contain additional information about the error
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class AiravataSystemException extends TException implements org.apache.thrift.TBase<AiravataSystemException, AiravataSystemException._Fields>, java.io.Serializable, Cloneable, Comparable<AiravataSystemException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AiravataSystemException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
index 8d45a52,8d45a52..ec706df
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthenticationException.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   *  message: contains the cause of the authorization failure.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class AuthenticationException extends TException implements org.apache.thrift.TBase<AuthenticationException, AuthenticationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthenticationException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthenticationException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
index bc27ae6,bc27ae6..2784b34
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/AuthorizationException.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   *  message: contains the authorization failure message
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class AuthorizationException extends TException implements org.apache.thrift.TBase<AuthorizationException, AuthorizationException._Fields>, java.io.Serializable, Cloneable, Comparable<AuthorizationException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthorizationException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
index 517ee3b,517ee3b..6f84da3
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ExperimentNotFoundException.java
@@@ -58,7 -58,7 +58,7 @@@ import org.slf4j.LoggerFactory
   * 
   * key:  The value passed from the client in the identifier, which was not found.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentNotFoundException extends TException implements org.apache.thrift.TBase<ExperimentNotFoundException, ExperimentNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentNotFoundException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentNotFoundException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
index f909497,f909497..d9a2afb
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/InvalidRequestException.java
@@@ -57,7 -57,7 +57,7 @@@ import org.slf4j.LoggerFactory
   * 
   *  message: contains the associated error message.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class InvalidRequestException extends TException implements org.apache.thrift.TBase<InvalidRequestException, InvalidRequestException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidRequestException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidRequestException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
index f6a7019,f6a7019..6d226ef
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/LaunchValidationException.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class LaunchValidationException extends TException implements org.apache.thrift.TBase<LaunchValidationException, LaunchValidationException._Fields>, java.io.Serializable, Cloneable, Comparable<LaunchValidationException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("LaunchValidationException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
index a81da69,a81da69..b394402
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ProjectNotFoundException.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 2:  optional  string key
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProjectNotFoundException extends TException implements org.apache.thrift.TBase<ProjectNotFoundException, ProjectNotFoundException._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectNotFoundException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectNotFoundException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
index b192ab6,b192ab6..c4bc47b
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/TimedOutException.java
@@@ -54,7 -54,7 +54,7 @@@ import org.slf4j.LoggerFactory
  /**
   * This exception is thrown when RPC timeout gets exceeded.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TimedOutException extends TException implements org.apache.thrift.TBase<TimedOutException, TimedOutException._Fields>, java.io.Serializable, Cloneable, Comparable<TimedOutException> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TimedOutException");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
index 9baedd4,9baedd4..dde0324
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidationResults.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ValidationResults implements org.apache.thrift.TBase<ValidationResults, ValidationResults._Fields>, java.io.Serializable, Cloneable, Comparable<ValidationResults> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidationResults");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
index e3de8dc,e3de8dc..90e0d0a
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/error/ValidatorResult.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ValidatorResult implements org.apache.thrift.TBase<ValidatorResult, ValidatorResult._Fields>, java.io.Serializable, Cloneable, Comparable<ValidatorResult> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ValidatorResult");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
index 7b01741,7b01741..0aa3153
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentModel.java
@@@ -67,7 -67,7 +67,7 @@@ import org.slf4j.LoggerFactory
   * experimentDescription:
   *    The verbose description of the experiment. This is an optional parameter.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentModel implements org.apache.thrift.TBase<ExperimentModel, ExperimentModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
index 03aa46a,03aa46a..5bbc759
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentStatistics.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentStatistics implements org.apache.thrift.TBase<ExperimentStatistics, ExperimentStatistics._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatistics> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatistics");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
index 62a568b,62a568b..243598f
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/ExperimentSummaryModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentSummaryModel implements org.apache.thrift.TBase<ExperimentSummaryModel, ExperimentSummaryModel._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSummaryModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSummaryModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
index 0ef0963,0ef0963..d1940ac
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/experiment/UserConfigurationDataModel.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class UserConfigurationDataModel implements org.apache.thrift.TBase<UserConfigurationDataModel, UserConfigurationDataModel._Fields>, java.io.Serializable, Cloneable, Comparable<UserConfigurationDataModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserConfigurationDataModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
index 4db9ae4,4db9ae4..37acb88
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/group/GroupModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class GroupModel implements org.apache.thrift.TBase<GroupModel, GroupModel._Fields>, java.io.Serializable, Cloneable, Comparable<GroupModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GroupModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
index 9553b0c,9553b0c..30e0e7d
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/job/JobModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobModel implements org.apache.thrift.TBase<JobModel, JobModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
index 2223a90,2223a90..bdbe5c9
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentStatusChangeEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentStatusChangeEvent implements org.apache.thrift.TBase<ExperimentStatusChangeEvent, ExperimentStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatusChangeEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatusChangeEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
index 7ec7315,7ec7315..f6de267
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ExperimentSubmitEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentSubmitEvent implements org.apache.thrift.TBase<ExperimentSubmitEvent, ExperimentSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentSubmitEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentSubmitEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
index b8e6d14,b8e6d14..1ea3d53
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobIdentifier.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobIdentifier implements org.apache.thrift.TBase<JobIdentifier, JobIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<JobIdentifier> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobIdentifier");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
index 046cb14,046cb14..5478c2b
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobStatusChangeEvent implements org.apache.thrift.TBase<JobStatusChangeEvent, JobStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
index 5f8d700,5f8d700..fea5d29
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/JobStatusChangeRequestEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobStatusChangeRequestEvent implements org.apache.thrift.TBase<JobStatusChangeRequestEvent, JobStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatusChangeRequestEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatusChangeRequestEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
index 9a242fd,9a242fd..2d61640
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/Message.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Message implements org.apache.thrift.TBase<Message, Message._Fields>, java.io.Serializable, Cloneable, Comparable<Message> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Message");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
index f683aa6,f683aa6..00821f4
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessIdentifier.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessIdentifier implements org.apache.thrift.TBase<ProcessIdentifier, ProcessIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessIdentifier> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessIdentifier");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
index e584686,e584686..a40feed
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessStatusChangeEvent implements org.apache.thrift.TBase<ProcessStatusChangeEvent, ProcessStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
index 43409dc,43409dc..5f0c583
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessStatusChangeRequestEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessStatusChangeRequestEvent implements org.apache.thrift.TBase<ProcessStatusChangeRequestEvent, ProcessStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatusChangeRequestEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatusChangeRequestEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 6b03647,6b03647..4392111
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
index 572d3c6,572d3c6..e834f02
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessTerminateEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessTerminateEvent implements org.apache.thrift.TBase<ProcessTerminateEvent, ProcessTerminateEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessTerminateEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessTerminateEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
index 3b96d84,3b96d84..ec382af
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskIdentifier.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskIdentifier implements org.apache.thrift.TBase<TaskIdentifier, TaskIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TaskIdentifier> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskIdentifier");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index c81656a,c81656a..e84c272
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskOutputChangeEvent implements org.apache.thrift.TBase<TaskOutputChangeEvent, TaskOutputChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskOutputChangeEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskOutputChangeEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
index b471a4f,b471a4f..73f75bc
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskStatusChangeEvent implements org.apache.thrift.TBase<TaskStatusChangeEvent, TaskStatusChangeEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
index 315159c,315159c..1aaf5f9
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskStatusChangeRequestEvent.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskStatusChangeRequestEvent implements org.apache.thrift.TBase<TaskStatusChangeRequestEvent, TaskStatusChangeRequestEvent._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatusChangeRequestEvent> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatusChangeRequestEvent");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
index 3454d4a,3454d4a..370db7f
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/process/ProcessModel.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessModel implements org.apache.thrift.TBase<ProcessModel, ProcessModel._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
index a3be728,a3be728..7b1472b
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/scheduling/ComputationalResourceSchedulingModel.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ComputationalResourceSchedulingModel implements org.apache.thrift.TBase<ComputationalResourceSchedulingModel, ComputationalResourceSchedulingModel._Fields>, java.io.Serializable, Cloneable, Comparable<ComputationalResourceSchedulingModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ComputationalResourceSchedulingModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
index 91d5e48,91d5e48..f002b5e
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/security/AuthzToken.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class AuthzToken implements org.apache.thrift.TBase<AuthzToken, AuthzToken._Fields>, java.io.Serializable, Cloneable, Comparable<AuthzToken> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AuthzToken");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
index 241bc6d,241bc6d..964ae6c
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ExperimentStatus.java
@@@ -64,7 -64,7 +64,7 @@@ import org.slf4j.LoggerFactory
   *   User friendly reason on how the state is inferred.
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ExperimentStatus implements org.apache.thrift.TBase<ExperimentStatus, ExperimentStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ExperimentStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExperimentStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
index 24e2d0b,24e2d0b..ec2a745
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/JobStatus.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobStatus implements org.apache.thrift.TBase<JobStatus, JobStatus._Fields>, java.io.Serializable, Cloneable, Comparable<JobStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
index d058fbc,d058fbc..424de10
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/ProcessStatus.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class ProcessStatus implements org.apache.thrift.TBase<ProcessStatus, ProcessStatus._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
index fd72d45,fd72d45..f15eff8
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/status/TaskStatus.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskStatus implements org.apache.thrift.TBase<TaskStatus, TaskStatus._Fields>, java.io.Serializable, Cloneable, Comparable<TaskStatus> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskStatus");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
index e27c7ae,e27c7ae..1877ca5
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/DataStagingTaskModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class DataStagingTaskModel implements org.apache.thrift.TBase<DataStagingTaskModel, DataStagingTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<DataStagingTaskModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("DataStagingTaskModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
index bc5b96f,bc5b96f..7dbbd4f
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/EnvironmentSetupTaskModel.java
@@@ -55,7 -55,7 +55,7 @@@ import org.slf4j.LoggerFactory
   * EnvironmentSetupTaskModel: A structure holding the environment creation task details
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class EnvironmentSetupTaskModel implements org.apache.thrift.TBase<EnvironmentSetupTaskModel, EnvironmentSetupTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<EnvironmentSetupTaskModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("EnvironmentSetupTaskModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
index 6242758,6242758..a8374fe
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/JobSubmissionTaskModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class JobSubmissionTaskModel implements org.apache.thrift.TBase<JobSubmissionTaskModel, JobSubmissionTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<JobSubmissionTaskModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("JobSubmissionTaskModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
index fa2ea02,fa2ea02..75e563f
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/MonitorTaskModel.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class MonitorTaskModel implements org.apache.thrift.TBase<MonitorTaskModel, MonitorTaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<MonitorTaskModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("MonitorTaskModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
index 12770ca,12770ca..8021366
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/task/TaskModel.java
@@@ -60,7 -60,7 +60,7 @@@ import org.slf4j.LoggerFactory
   * subTaskModel:
   *   A generic byte object for the Task developer to store internal serialized data into registry catalogs.
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class TaskModel implements org.apache.thrift.TBase<TaskModel, TaskModel._Fields>, java.io.Serializable, Cloneable, Comparable<TaskModel> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TaskModel");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
index f7e9bfb,f7e9bfb..4ac1a81
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/NSFDemographics.java
@@@ -56,7 -56,7 +56,7 @@@ import org.slf4j.LoggerFactory
   * 
   * 
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class NSFDemographics implements org.apache.thrift.TBase<NSFDemographics, NSFDemographics._Fields>, java.io.Serializable, Cloneable, Comparable<NSFDemographics> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NSFDemographics");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
index ef18235,ef18235..3b7ccdd
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/user/UserProfile.java
@@@ -103,7 -103,7 +103,7 @@@ import org.slf4j.LoggerFactory
   * *  User\u2019s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
   * *
   */
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class UserProfile implements org.apache.thrift.TBase<UserProfile, UserProfile._Fields>, java.io.Serializable, Cloneable, Comparable<UserProfile> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserProfile");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
index c32cc0d,c32cc0d..4bac979
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Gateway.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Gateway implements org.apache.thrift.TBase<Gateway, Gateway._Fields>, java.io.Serializable, Cloneable, Comparable<Gateway> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Gateway");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
index f1bf76f,f1bf76f..ee408e5
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Group.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Group implements org.apache.thrift.TBase<Group, Group._Fields>, java.io.Serializable, Cloneable, Comparable<Group> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Group");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
index bebdca6,bebdca6..99abdea
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Notification.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Notification implements org.apache.thrift.TBase<Notification, Notification._Fields>, java.io.Serializable, Cloneable, Comparable<Notification> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Notification");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
index 275c199,275c199..260ab5f
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/Project.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class Project implements org.apache.thrift.TBase<Project, Project._Fields>, java.io.Serializable, Cloneable, Comparable<Project> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Project");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
index e0cfcc2,e0cfcc2..c243473
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/User.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2016-10-07")
  public class User implements org.apache.thrift.TBase<User, User._Fields>, java.io.Serializable, Cloneable, Comparable<User> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("User");
  

http://git-wip-us.apache.org/repos/asf/airavata/blob/fa5a1e0f/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------